project-software/flake.nix
2025-10-19 11:15:29 +07:00

45 lines
No EOL
1.4 KiB
Nix

{
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
'';
};
}
);
};
}