mirror of
https://github.com/9001/copyparty.git
synced 2025-08-19 18:02:28 -06:00
nix: make usage in non-flake setups easier (#296)
* nix: extract overlay into own file * readme: document non-flake nixos usage
This commit is contained in:
parent
b5c6b4fa99
commit
20ef74cdac
29
README.md
29
README.md
|
@ -2344,7 +2344,7 @@ some recommended dependencies are enabled by default; [override the package](htt
|
||||||
|
|
||||||
## nixos module
|
## nixos module
|
||||||
|
|
||||||
for this setup, you will need a [flake-enabled](https://nixos.wiki/wiki/Flakes) installation of NixOS.
|
for [flake-enabled](https://nixos.wiki/wiki/Flakes) installations of NixOS:
|
||||||
|
|
||||||
```nix
|
```nix
|
||||||
{
|
{
|
||||||
|
@ -2371,6 +2371,33 @@ for this setup, you will need a [flake-enabled](https://nixos.wiki/wiki/Flakes)
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
if you don't use a flake in your configuration, you can use other dependency management tools like [npins](https://github.com/andir/npins), [niv](https://github.com/nmattia/niv), or even plain [`fetchTarball`](https://nix.dev/manual/nix/stable/language/builtins#builtins-fetchTarball), like so:
|
||||||
|
|
||||||
|
```nix
|
||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
# npins example, adjust for your setup. copyparty should be a path to the downloaded repo
|
||||||
|
# for niv, just replace the npins folder import with the sources.nix file
|
||||||
|
copyparty = (import ./npins).copyparty;
|
||||||
|
|
||||||
|
# or with fetchTarball:
|
||||||
|
copyparty = fetchTarball "https://github.com/9001/copyparty/archive/hovudstraum.tar.gz";
|
||||||
|
in
|
||||||
|
|
||||||
|
{
|
||||||
|
# load the copyparty NixOS module
|
||||||
|
imports = [ "${copyparty}/contrib/nixos/modules/copyparty.nix" ];
|
||||||
|
|
||||||
|
# add the copyparty overlay to expose the package to the module
|
||||||
|
nixpkgs.overlays = [ "${copyparty}/contrib/package/nix/overlay.nix" ];
|
||||||
|
# (optional) install the package globally
|
||||||
|
environment.systemPackages = [ pkgs.copyparty ];
|
||||||
|
# configure the copyparty module
|
||||||
|
services.copyparty.enable = true;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
copyparty on NixOS is configured via `services.copyparty` options, for example:
|
copyparty on NixOS is configured via `services.copyparty` options, for example:
|
||||||
```nix
|
```nix
|
||||||
services.copyparty = {
|
services.copyparty = {
|
||||||
|
|
11
contrib/package/nix/overlay.nix
Normal file
11
contrib/package/nix/overlay.nix
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
final: prev: {
|
||||||
|
copyparty = final.python3.pkgs.callPackage ./copyparty {
|
||||||
|
ffmpeg = final.ffmpeg-full;
|
||||||
|
};
|
||||||
|
|
||||||
|
python3 = prev.python3.override {
|
||||||
|
packageOverrides = pyFinal: pyPrev: {
|
||||||
|
partftpy = pyFinal.callPackage ./partftpy { };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
11
flake.nix
11
flake.nix
|
@ -12,16 +12,7 @@
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
nixosModules.default = ./contrib/nixos/modules/copyparty.nix;
|
nixosModules.default = ./contrib/nixos/modules/copyparty.nix;
|
||||||
overlays.default = final: prev: {
|
overlays.default = import ./contrib/package/nix/overlay.nix;
|
||||||
copyparty = final.python3.pkgs.callPackage ./contrib/package/nix/copyparty {
|
|
||||||
ffmpeg = final.ffmpeg-full;
|
|
||||||
};
|
|
||||||
python3 = prev.python3.override {
|
|
||||||
packageOverrides = pyFinal: pyPrev: {
|
|
||||||
partftpy = pyFinal.callPackage ./contrib/package/nix/partftpy { };
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
// flake-utils.lib.eachDefaultSystem (
|
// flake-utils.lib.eachDefaultSystem (
|
||||||
system:
|
system:
|
||||||
|
|
Loading…
Reference in a new issue