Files
nixpkgs/pkgs/by-name/ag/ags/bundle.nix
Dark Steveneq 646b892680
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
push sheeet
2025-10-09 14:15:47 +02:00

86 lines
1.6 KiB
Nix

{
lib,
ags,
astal,
dart-sass,
fzf,
gjs,
gnused,
gobject-introspection,
gtk3,
gtk4-layer-shell,
stdenvNoCC,
wrapGAppsHook3,
wrapGAppsHook4,
}:
{
entry ? "app.ts",
dependencies ? [ ],
enableGtk4 ? false,
...
}@attrs:
stdenvNoCC.mkDerivation (
finalAttrs:
attrs
// {
nativeBuildInputs = (attrs.nativeBuildInputs or [ ]) ++ [
(ags.override { extraPackages = dependencies; })
gnused
gobject-introspection
(if enableGtk4 then wrapGAppsHook4 else wrapGAppsHook3)
];
buildInputs =
(attrs.buildInputs or [ ])
++ dependencies
++ [
gjs
astal.astal4
astal.astal3
astal.io
];
preFixup = ''
gappsWrapperArgs+=(
--prefix PATH : ${
lib.makeBinPath (
dependencies
++ [
dart-sass
fzf
gtk3
]
)
}
)
''
+ lib.optionalString enableGtk4 ''
gappsWrapperArgs+=(
--set LD_PRELOAD "${gtk4-layer-shell}/lib/libgtk4-layer-shell.so"
)
''
+ (attrs.preFixup or "");
installPhase =
let
outBin = "$out/bin/${finalAttrs.pname}";
in
# bash
''
runHook preInstall
mkdir -p "$out/bin" "$out/share"
cp -r ./* "$out/share"
ags bundle "${entry}" "${outBin}" -d "SRC='$out/share'"
chmod +x "${outBin}"
if ! head -n 1 "${outBin}" | grep -q "^#!"; then
sed -i '1i #!${gjs}/bin/gjs -m' "${outBin}"
fi
runHook postInstall
'';
}
)