40 lines
1.3 KiB
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
|