nixtore/flake.nix

66 lines
1.9 KiB
Nix

{
description = "Nutstore on NixOS";
outputs = { self, nixpkgs }:
let
systems = [ "x86_64-linux" ];
forEachSystem = nixpkgs.lib.genAttrs systems;
in
{
packages = forEachSystem (system:
let
pkgs = import nixpkgs { inherit system; };
in
rec {
nutstore-unwrapped = (pkgs.buildFHSEnv {
name = "nutstore-unwrapped";
targetPkgs = pkgs: (with pkgs; [
udev
alsa-lib
zlib
cairo
glib
glib-networking
webkitgtk
gtk3
libnotify
(python3.withPackages (pythonPackages: with pythonPackages; [
pygobject3
]))
]) ++ (with pkgs.xorg; [
libX11
libXcursor
libXrandr
]);
multiPkgs = pkgs: (with pkgs; [
udev
glib-networking
alsa-lib
]);
runScript = ''env GI_TYPELIB_PATH=/usr/lib/girepository-1.0 GIO_MODULE_DIR=${pkgs.glib-networking} python $HOME/.nutstore/dist/bin/nutstore-pydaemon.py'';
});
nutstore = pkgs.stdenv.mkDerivation {
name = "nutstore";
pname = "0.0.1";
src = ./.;
buildInputs = [
pkgs.makeWrapper
];
installPhase = let
desktopEntry = ./nutstore-menu.desktop;
in ''
mkdir -p $out/bin $out/share/applications
makeWrapper ${nutstore-unwrapped}/bin/nutstore-unwrapped $out/bin/nutstore
sed "s,Exec=.*,Exec=$out/bin/nutstore,; s,Icon=.*,Icon=${./share/icons/hicolor/512x512/apps/nutstore.png}," ${desktopEntry} > $out/share/applications/nutstore-menu.desktop
'';
};
default = nutstore;
});
};
}