]> glassweightruler.freedombox.rocks Git - xdg-ninja.git/blob - flake.nix
Add CI for nix flake
[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.xdg-ninja;
30 # Pre-built binary of xdgnj tool downloaded from github
31 xdgnj-bin = pkgs.stdenvNoCC.mkDerivation {
32 name = "xdgnj-bin";
33 version = "0.2.0.1-alpha";
34 description = "Pre-built binary of the xdgnj tool for creating and editing configuration files for xdg-ninja.";
35 src = pkgs.fetchurl {
36 url = "https://github.com/b3nj5m1n/xdg-ninja/releases/download/v0.2.0.1/xdgnj";
37 sha256 = "y1BSqKQWbhCyg2sRgMsv8ivmylSUJj6XZ8o+/2oT5ns=";
38 };
39 dontUnpack = true;
40 installPhase = ''
41 mkdir -p "$out/bin"
42 install -Dm755 $src "$out/bin/xdgnj"
43 '';
44 };
45 };
46 defaultPackage = packages.xdg-ninja;
47 apps = {
48 xdg-ninja = flake-utils.lib.mkApp { drv = packages.xdg-ninja; };
49 xdgnj-bin = flake-utils.lib.mkApp { drv = packages.xdgnj-bin; exePath = "/bin/xdgnj"; };
50 };
51 defaultApp = apps.xdg-ninja;
52 }
53 );
54 }