nixos-config/pkgs/sobercookie/default.nix
2024-09-13 08:42:43 +02:00

64 lines
1.5 KiB
Nix

{
stdenv,
gnugrep,
lib,
pkg-config,
flatpak,
procps,
bash,
jq,
gnused,
libnotify,
coreutils,
makeWrapper,
luajitPackages,
gobject-introspection,
gtk3,
wrapGAppsHook,
luajit,
nv_generated,
}:
stdenv.mkDerivation (nv_generated.sobercookie
// (let
lgi = luajitPackages.lgi;
in {
buildInputs = [bash luajit];
nativeBuildInputs = [
makeWrapper
pkg-config
wrapGAppsHook
gobject-introspection
];
propagatedBuildInputs = [gtk3];
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp sobercookie $out/bin/sobercookie
cp sobercookie_service $out/bin/sobercookie_service
cp launcher.lua $out/bin/sobercookie-launcher
mkdir -p $out/share/applications
cp sobercookie-launcher.desktop $out/share/applications
runHook postInstall
'';
preFixup = ''
gappsWrapperArgs+=(
--prefix LUA_PATH : "./?.lua;${lgi}/share/lua/5.1/?.lua;${lgi}/share/lua/5.1/?/init.lua;${luajit}/share/lua/5.1/\?.lua;${luajit}/share/lua/5.1/?/init.lua"
--prefix LUA_CPATH : "./?.so;${lgi}/lib/lua/5.1/?.so;${luajit}/lib/lua/5.1/?.so;${luajit}/lib/lua/5.1/loadall.so"
)
'';
postFixup = ''
wrapProgram $out/bin/sobercookie_service \
--prefix PATH : ${lib.makeBinPath [bash jq libnotify coreutils procps gnugrep gnused]} ## sudo is assumed to be installed
wrapProgram $out/bin/sobercookie \
--prefix PATH : ${lib.makeBinPath [flatpak bash coreutils procps]}:$out/bin
'';
}))