/ flake.nix
flake.nix
 1  {
 2    description = "File/Directory transferring tool";
 3  
 4    inputs = {
 5      nixpkgs.url = "github:nixos/nixpkgs/release-25.05";
 6      flake-utils.url = "github:numtide/flake-utils";
 7    };
 8  
 9    outputs =
10      {
11        self,
12        nixpkgs,
13        flake-utils,
14        ...
15      }:
16      flake-utils.lib.eachSystem [ "x86_64-linux" "aarch64-linux" ] (
17        system:
18        let
19          pkgs = import nixpkgs {
20            inherit system;
21            config.allowUnfree = true;
22            overlays = [
23              self.overlays.default
24            ];
25          };
26        in
27        {
28          packages = {
29            inherit (pkgs) bale;
30            default = pkgs.bale;
31          };
32        }
33      )
34      // {
35        overlays = {
36          default =
37            final: prev:
38            let
39              mtime = self.lastModifiedDate;
40              date = builtins.substring 2 6 mtime;
41              rev = self.rev or (nixpkgs.lib.warn "Git changes are not committed" (self.dirtyRev or "dirty"));
42              version = "${date}+${builtins.substring 0 8 rev}";
43            in
44            {
45              bale = final.callPackage ./app {
46                inherit version;
47              };
48            };
49        };
50        hydraJobs = self.packages;
51      };
52  }