cyber-rain 0.3.0

A smoother, themeable Rust take on cmatrix.
{
  description = "A smoother, themeable Rust terminal digital-rain visualizer";

  inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";

  outputs = { self, nixpkgs }:
    let
      systems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
      forAllSystems = nixpkgs.lib.genAttrs systems;
    in
    {
      packages = forAllSystems (system:
        let
          pkgs = import nixpkgs { inherit system; };
        in
        {
          default = pkgs.rustPlatform.buildRustPackage {
            pname = "cyber-rain";
            version = "0.3.0";
            src = self;
            cargoLock.lockFile = ./Cargo.lock;
            nativeBuildInputs = [ pkgs.installShellFiles ];

            postInstall = ''
              installManPage man/cyber-rain.1
            '';

            meta = {
              description = "A smoother, themeable Rust terminal digital-rain visualizer";
              homepage = "https://github.com/anthony-cervantes/cyber-rain";
              license = with pkgs.lib.licenses; [ mit asl20 ];
              mainProgram = "cyber-rain";
            };
          };
        });

      apps = forAllSystems (system: {
        default = {
          type = "app";
          program = "${self.packages.${system}.default}/bin/cyber-rain";
        };
      });
    };
}