{ description = "A Python Project Template."; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; }; outputs = { self, nixpkgs, ... }@inputs: let supportedSystems = [ "x86_64-linux" ]; forAllSystems = nixpkgs.lib.genAttrs supportedSystems; pkgs = forAllSystems (system: nixpkgs.legacyPackages.${system}); in { # `nix build` packages = forAllSystems (system: rec { default = cloudns; cloudns = pkgs.${system}.callPackage ./nix/package.nix { src = ./.; }; }); # `nix develop` devShells = forAllSystems (system: rec { default = venv; venv = pkgs.${system}.mkShell { shellHook = '' if [ ! -d .venv/ ]; then echo "Creating Virtual Environment..." ${pkgs.${system}.python3}/bin/python3 -m venv .venv fi alias activate='source .venv/bin/activate' echo "Entering Virtual Environment..." source .venv/bin/activate ''; }; }); # NixOS Module nixosModules.default = import ./nix/module.nix inputs; }; }