rejson 0.6.1

A command line utility for managing secrets
Documentation
{
  description = "Rejson - A utility for managing a collection of secrets in source control";

  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
    flake-utils.url = "github:numtide/flake-utils";
    rust-overlay.url = "github:oxalica/rust-overlay";
  };

  outputs = { self, nixpkgs, flake-utils, rust-overlay }:
    flake-utils.lib.eachDefaultSystem (system:
      let
        pkgs = import nixpkgs {
          inherit system;
          overlays = [
            rust-overlay.overlays.default
          ];
        };

        # Use minimal stable Rust toolchain with clippy
        rustToolchain = pkgs.rust-bin.stable."1.91.1".minimal.override {
          extensions = [ "clippy" "llvm-tools-preview" ];
        };

        # Use nightly rustfmt for formatting
        nightlyRustfmt = pkgs.rust-bin.selectLatestNightlyWith (toolchain:
          toolchain.minimal.override {
            extensions = [ "rustfmt" ];
          }
        );
      in
      {
        devShells.default = pkgs.mkShell {
          nativeBuildInputs = with pkgs; [
            rustToolchain
            nightlyRustfmt

            # Additional development tools
            go-task
            pkg-config
          ];

          buildInputs = with pkgs; [
            openssl
          ];

          shellHook = ''
            echo "🦀 Rejson development environment loaded!"
            echo "Rust version: $(rustc --version)"
            echo "Cargo version: $(cargo --version)"
            echo "Clippy available: $(clippy-driver --version)"
            echo "Rustfmt (nightly) available: $(rustfmt --version)"
          '';
        };
      }
    );
}