tiny-tools 0.1.6

a tiny collection of helper utils
Documentation
{
  description = "A basic rust devShell";

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

  outputs = {
    self,
    nixpkgs,
    unstable-nixpkgs,
    rust-overlay,
    flake-utils,
    ...
  }:
    flake-utils.lib.eachDefaultSystem (
      system: let
        overlays = [
          (import rust-overlay)
          (final: prev: {
            unstable = import unstable-nixpkgs {
              inherit system;
              config.allowUnfree = true;
            };
          })
        ];
        pkgs = import nixpkgs {
          inherit system overlays;
        };
      in {
        devShells.default = with pkgs;
          mkShell {
            # nativeBuildInputs is usually what you want -- tools you need to run
            nativeBuildInputs = with pkgs.buildPackages; [lua];
            buildInputs = [
              openssl
              pkg-config
              llvmPackages.bintools
              eza
              unstable.neovim
              unstable.lazygit
              fd
              unstable.rustup
              rust-bin.stable.latest.default
              unstable.lazygit
            ];

            shellHook = ''
              alias ls=eza
              alias find=fd
              export PATH=$PATH:''${CARGO_HOME:-~/.cargo}/bin
              export PATH=$PATH:''${RUSTUP_HOME:-~/.rustup}/toolchains/$RUSTC_VERSION-x86_64-unknown-linux-gnu/bin/
              echo "Environment ready!" | ${pkgs.lolcat}/bin/lolcat
            '';
          };
      }
    );
}