{ description = "Project-A Software Flake!"; inputs = { nixpkgs.url = "nixpkgs/nixos-25.05"; nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; }; outputs = { self, nixpkgs, nixpkgs-unstable, ... }: let pkgs = nixpkgs.legacyPackages.x86_64-linux; pkgs-unstable = nixpkgs-unstable.legacyPackages.x86_64-linux; stdenv = pkgs.stdenv; in { nixosModules = { affine = import ./affine/main.nix; marzban = import ./marzban/main.nix; }; packages = (nixpkgs.lib.genAttrs [ "x86_64-linux" ]) (system: { dungeonclub = import ./dungeonclub/package.nix { inherit pkgs; inherit stdenv; }; }); devShells = nixpkgs.lib.genAttrs [ "x86_64-linux" ] (system: { default = let prompt = ''function fish_prompt; set_color red; echo -n "Project-A/debug> "; set_color normal; end''; inspect = ''function inspect; nix repl .; end;''; inspect-nixpkgs = ''function inspect-nixpkgs; nix repl nixpkgs; end;''; included-functions = "${inspect} ${inspect-nixpkgs}"; in pkgs.mkShell { buildInputs = [ pkgs-unstable.sing-box pkgs.openssl ]; shellHook = '' printf "Welcome to the \033[1;31mProject-A\033[0m dev shell!\n" if [ -z "$FISH_VERSION" ] && [ -x "${pkgs.fish}/bin/fish" ]; then exec ${pkgs.fish}/bin/fish --init-command '${prompt}; ${included-functions}' fi ''; }; } ); }; }