mirror of
https://github.com/baairon/torlink.git
synced 2026-07-08 18:28:22 +02:00
chore: add nix flake for Linux
* nix: init 1.0.0-unstable rev 6902733
* nix: add install instructions
* nix: update 1.0.0 -> 1.1.1
This commit is contained in:
Generated
+27
@@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1782467914,
|
||||||
|
"narHash": "sha256-pGvFkM8N0xEkIIXDe5YYfbEAvHrk4IxBrjB/x8OomhE=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "e73de5be04e0eff4190a1432b946d469c794e7b4",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
description = "Torlink is a torrent finder that lives in your terminal, with zero setup and nothing to configure.";
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs =
|
||||||
|
{ self, nixpkgs }:
|
||||||
|
|
||||||
|
let
|
||||||
|
systems = [
|
||||||
|
"x86_64-linux"
|
||||||
|
];
|
||||||
|
forAllSystems = nixpkgs.lib.genAttrs systems;
|
||||||
|
|
||||||
|
in
|
||||||
|
{
|
||||||
|
packages = forAllSystems (
|
||||||
|
system:
|
||||||
|
let
|
||||||
|
pkgs = nixpkgs.legacyPackages.${system};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
default = pkgs.callPackage ./nix/package.nix { };
|
||||||
|
}
|
||||||
|
);
|
||||||
|
overlays.default = final: prev: {
|
||||||
|
torlink = final.callPackage ./nix/package.nix { };
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
# Flake install
|
||||||
|
Add this repo to your ```flake.nix```. The package is built using the unstable channel. You can overwrite this by setting ```inputs.nixpkgs.follows = "nixpkgs"``` (if your default is 26.05).
|
||||||
|
|
||||||
|
**The binary is executed as ```torlnk```.**
|
||||||
|
|
||||||
|
```nix
|
||||||
|
inputs = {
|
||||||
|
...
|
||||||
|
torlink.url = "github:baairon/torlink";
|
||||||
|
...
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
You can install the package in either home.nix or your configuration.nix depending on your preference.
|
||||||
|
|
||||||
|
**User**
|
||||||
|
```nix
|
||||||
|
# home.nix
|
||||||
|
{ pkgs, inputs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
...
|
||||||
|
inputs.torlink.packages.${pkgs.system}.default
|
||||||
|
...
|
||||||
|
];
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**System**
|
||||||
|
```nix
|
||||||
|
# configuration.nix
|
||||||
|
{ pkgs, inputs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
...
|
||||||
|
inputs.torlink.packages.${pkgs.system}.default
|
||||||
|
...
|
||||||
|
];
|
||||||
|
}
|
||||||
|
```
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
buildNpmPackage,
|
||||||
|
fetchFromGitHub,
|
||||||
|
# dependencies
|
||||||
|
fetchurl,
|
||||||
|
nodejs_22,
|
||||||
|
wl-clipboard,
|
||||||
|
xclip,
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildNpmPackage (finalAttrs: {
|
||||||
|
pname = "torlink";
|
||||||
|
version = "1.1.1-unstable";
|
||||||
|
__structedAttrs = true;
|
||||||
|
strictDeps = true;
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "baairon";
|
||||||
|
repo = "torlink";
|
||||||
|
rev = "3c5b5597d9ad212b6dab50af5a6e614cdfb82743";
|
||||||
|
hash = "sha256-f4olyyE2QqvVyakV5LvQq2Rm01fNeVox1Mk0VOat/nk=";
|
||||||
|
};
|
||||||
|
|
||||||
|
nodejs = nodejs_22;
|
||||||
|
npmDepsHash = "sha256-7CCecywWleUE7wobdzwWb4Rff0LmrlHcON1iPeiiFnw=";
|
||||||
|
npmFlags = [ "--ignore-scripts" ]; # ignore scripts for ip-set broken pre-install
|
||||||
|
|
||||||
|
# node-datachannel binary tarball
|
||||||
|
nodeDatachannelPrebuilt = fetchurl {
|
||||||
|
url = "https://github.com/murat-dogan/node-datachannel/releases/download/v0.32.3/node-datachannel-v0.32.3-napi-v8-linux-x64.tar.gz";
|
||||||
|
sha256 = "4092afc9cd594a3326eb1bd823da452b227b742ea8222689b2cea6f7344cf67a";
|
||||||
|
};
|
||||||
|
|
||||||
|
# replicate postbuild from package.json
|
||||||
|
postBuild = ''
|
||||||
|
cp scripts/cli-entry.cjs dist/cli.cjs
|
||||||
|
chmod +x dist/cli.cjs
|
||||||
|
'';
|
||||||
|
|
||||||
|
# extract node-datachannel tarball
|
||||||
|
postInstall = ''
|
||||||
|
tar -xzf ${finalAttrs.nodeDatachannelPrebuilt} \
|
||||||
|
-C $out/lib/node_modules/torlnk/node_modules/node-datachannel
|
||||||
|
# add wl-copy and xclip to nix readeable path
|
||||||
|
wrapProgram $out/bin/torlnk \
|
||||||
|
--prefix PATH : ${
|
||||||
|
lib.makeBinPath [
|
||||||
|
wl-clipboard
|
||||||
|
xclip
|
||||||
|
]
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Torlink is a torrent finder that lives in your terminal, with zero setup and nothing to configure.";
|
||||||
|
homepage = "https://github.com/baairon/torlink";
|
||||||
|
license = lib.licenses.mit;
|
||||||
|
maintainers = with lib.maintainers; [ ghastrum ];
|
||||||
|
mainProgram = "torlnk";
|
||||||
|
platforms = lib.platforms.linux;
|
||||||
|
};
|
||||||
|
})
|
||||||
Reference in New Issue
Block a user