]> glassweightruler.freedombox.rocks Git - xdg-ninja.git/blob - flake.nix
Added roswell support
[xdg-ninja.git] / flake.nix
1 {
2 inputs = {
3 nixpkgs.url = "nixpkgs";
4 flake-utils.url = "github:numtide/flake-utils";
5 };
6 outputs = {
7 self,
8 nixpkgs,
9 flake-utils,
10 }:
11 flake-utils.lib.eachDefaultSystem (system:
12 let
13 runtimeDependencies = with pkgs; [
14 glow
15 jq
16 findutils
17 ];
18 overlays = [
19 (self: super: {
20 xdg-ninja = super.xdg-ninja.overrideAttrs (old: {
21 version = "git";
22 src = ./.;
23 });
24 })
25 ];
26 pkgs = import nixpkgs { inherit system overlays; };
27 in rec {
28 packages = flake-utils.lib.flattenTree {
29 # The shell script and configurations, uses derivation from offical nixpkgs
30 xdg-ninja = pkgs.stdenv.mkDerivation rec {
31 pname = "xdg-ninja";
32 version = "0.1.0";
33
34 src = ./.;
35
36 nativeBuildInputs = with pkgs; [ makeWrapper ];
37
38 installPhase = ''
39 runHook preInstall
40
41 DESTDIR="$out" PREFIX="/usr" make install
42
43 wrapProgram "$out/usr/bin/xdg-ninja" \
44 --prefix PATH : "${pkgs.lib.makeBinPath [ pkgs.glow pkgs.jq ]}"
45
46 runHook postInstall
47 '';
48 };
49 # Pre-built binary of xdgnj tool downloaded from github
50 xdgnj-bin = pkgs.stdenvNoCC.mkDerivation {
51 name = "xdgnj-bin";
52 version = "0.2.0.1-alpha";
53 description = "Pre-built binary of the xdgnj tool for creating and editing configuration files for xdg-ninja.";
54 src = pkgs.fetchurl {
55 url = "https://github.com/b3nj5m1n/xdg-ninja/releases/download/v0.2.0.1/xdgnj";
56 sha256 = "y1BSqKQWbhCyg2sRgMsv8ivmylSUJj6XZ8o+/2oT5ns=";
57 };
58 dontUnpack = true;
59 installPhase = ''
60 mkdir -p "$out/bin"
61 install -Dm755 $src "$out/bin/xdgnj"
62 '';
63 };
64 };
65 defaultPackage = packages.xdg-ninja;
66 apps = {
67 xdg-ninja = flake-utils.lib.mkApp { drv = packages.xdg-ninja; exePath = "/usr/bin/xdg-ninja"; };
68 xdgnj-bin = flake-utils.lib.mkApp { drv = packages.xdgnj-bin; exePath = "/bin/xdgnj"; };
69 };
70 defaultApp = apps.xdg-ninja;
71 }
72 );
73 }