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