flk 0.5.3

A CLI tool for managing flake.nix devShell environments
Documentation
{
  description = "Development environment managed by flk";

  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
    flake-utils.url = "github:numtide/flake-utils";
    profile-lib.url = "github:AEduardo-dev/nix-profile-lib";
  };

  outputs = inputs @ {
    self,
    nixpkgs,
    flake-utils,
    ...
  }: let
    base = import ./.flk inputs;
    cargoToml = (nixpkgs.lib.importTOML ./Cargo.toml).package;
  in
    nixpkgs.lib.recursiveUpdate base
    (flake-utils.lib.eachDefaultSystem (system: let
      pkgs = import nixpkgs {inherit system;};

      flkPackage = pkgs.rustPlatform.buildRustPackage {
        pname = cargoToml.name;
        version = cargoToml.version;
        src = ./.;
        cargoLock.lockFile = ./Cargo.lock;
        doCheck = false; # Disable tests: nixpkgs exposure is limited in sandboxed builds
      };
    in {
      packages.flk = flkPackage;
      apps.flk = {
        type = "app";
        program = "${flkPackage}/bin/${cargoToml.name}";
      };

      # Overlay to expose flk as pkgs.flk
      overlay = final: prev: {
        flk = self.packages.${final.system}.flk;
      };
    }));
}