gitbrowser-rs 0.2.0

A basic TUI git repository browser without needing to check out the revision being browsed.
{
  description = "Dumb curses git browser for reading files from arbitraty git revisions ";

  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.05";
    systems.url = "github:nix-systems/default";
    utils = {
      url = "github:numtide/flake-utils";
      inputs.systems.follows = "systems";
    };
  };

  outputs = { self, nixpkgs, utils, ... }:
    (utils.lib.eachDefaultSystem (system:
      let
        pkgs = nixpkgs.legacyPackages.${system};
        inherit (pkgs) pkgsStatic;
      in
        {
          packages =
            {
              gitbrowser-rs =
                pkgs.rustPlatform.buildRustPackage {
                  pname = "gitbrowser-rs";
                  version = "0.1.0";
                  src = ./.;

                  cargoLock.lockFile = ./Cargo.lock;
                };
              gitbrowser-rs-static =
                pkgsStatic.rustPlatform.buildRustPackage {
                  pname = "gitbrowser-rs";
                  version = "0.1.0";
                  src = ./.;

                  cargoLock.lockFile = ./Cargo.lock;
                };
              default = self.packages.${system}.gitbrowser-rs;
            };

          apps = {
            default = self.apps."${system}".gitbrowser-rs;
            gitbrowser-rs = {
              type = "app";
              program = "${self.packages."${system}".default}/bin/gitbrowser-rs";
            };
          };

          devShells.default = pkgs.mkShell {
            inputsFrom = [ self.packages.${system}.gitbrowser-rs ];
            packages = with pkgs; [
              cargo
              rustc
              rust-analyzer
              rustfmt
              clippy
              rust.packages.stable.rustPlatform.rustLibSrc
            ];
          };
        })) // {
          overlays.default = final: prev: {
            gitbrowser-rs = self.packages.${prev.stdenv.hostPlatform.system}.gitbrowser-rs;
          };
        };
}