1
Fork 0
satellite/pkgs/homer.nix

40 lines
1.3 KiB
Nix

# Taken from this comment: https://github.com/NixOS/nixpkgs/issues/152343#issuecomment-1367069827
{ lib, fetchzip, writeTextFile, runCommandLocal, symlinkJoin }:
let
homer = fetchzip rec {
pname = "homer";
version = "24.02.1";
url =
"https://github.com/bastienwirtz/${pname}/releases/download/v${version}/${pname}.zip";
hash = "sha256-McMJuZ84B3BlGHLQf+/ttRe5xAzQuR6qHrH8IjGys2Q=";
stripRoot = false;
passthru = {
withAssets = { name ? null, config, extraAssets ? [ ] }:
let nameSuffix = lib.optionalString (name != null) "-${name}";
in
symlinkJoin {
name = "homer-root${nameSuffix}";
paths = [
homer
(writeTextFile {
name = "homer-configuration${nameSuffix}";
text = builtins.toJSON config;
destination = "/assets/config.yml";
})
] ++
lib.optional (extraAssets != [ ])
(runCommandLocal "homer-assets${nameSuffix}" { }
(builtins.concatStringsSep "\n" (map
(asset: ''
mkdir -p $out/assets/${dirOf asset}
ln -s ${asset} $out/assets/${asset}
'')
extraAssets)));
};
};
};
in
homer