{ description = "Locutus - A simple Borg wrapper"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; flake-utils.url = "github:numtide/flake-utils"; }; outputs = { self, nixpkgs, flake-utils, ... }: flake-utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { inherit system; }; python = pkgs.python313; pythonPackages = python.pkgs; locutus = pythonPackages.buildPythonApplication { pname = "locutus"; version = "0.1.0"; src = ./.; format = "pyproject"; nativeBuildInputs = with pkgs; [ makeWrapper python.pkgs.setuptools ]; propagatedBuildInputs = with pythonPackages; []; # Install the CLI entrypoint postInstall = '' wrapProgram $out/bin/locutus --prefix PATH : ${pkgs.borgbackup}/bin ''; }; in { packages.default = locutus; apps.default = flake-utils.lib.mkApp { drv = locutus; }; devShells.default = pkgs.mkShell { buildInputs = [ python pkgs.borgbackup locutus ]; }; } ); }