{ description = "Reproducible Environment for anish.lakhwara.com"; inputs = { nixpkgs.url = "github:nixos/nixpkgs"; flake-utils.url = "github:numtide/flake-utils"; }; outputs = { self, nixpkgs, flake-utils }: flake-utils.lib.eachDefaultSystem (system: let pkgs = nixpkgs.legacyPackages.${system}; my-python = pkgs.python3; python-with-my-packages = my-python.withPackages (p: with p; [ icecream python-ctags3 jinja2 click pypandoc # other python packages you want ]); in { devShell = pkgs.mkShell { buildInputs = [ python-with-my-packages pkgs.pandoc ]; shellHook = '' PYTHONPATH=${python-with-my-packages}/${python-with-my-packages.sitePackages} # This only works when you have ~/vimwiki locally, since I'm not putting my unfiltered kitaab online alias build='python3 src/kitaab-public/main.py' # maybe set more env-vars ''; }; defaultPackage = pkgs.python3Packages.buildPythonPackage { # We should probably only call grab from main.py here pname = "basant"; src = ./.; version = "0.1"; propagatedBuildInputs = [ python-with-my-packages ]; doCheck = false; }; packages.site = pkgs.stdenv.mkDerivation { name = "anish-lakhwara-site"; src = ./.; buildInputs = [ pkgs.python3 ]; buildPhase = '' ${self.defaultPackage.${system}}/bin/main.py ''; installPhase = '' mkdir -p $out cp -R output/* $out/ ''; }; #nixosModule = { options, lib, config, pkgs, ... }: # let # serverName = "anish.lakhwara.com"; # webRoot = "/var/www/${serverName}"; # serviceConfig = config.services."${serverName}"; # options = { # enable = lib.mkEnableOption "${serverName} service"; # }; # in # { # options.services.${serverName} = options; # config = lib.mkIf serviceConfig.enable { # systemd.services."source-${serverName}" = { # description = '' # https://${serverName} source # ''; # serviceConfig = { # Type = "oneshot"; # }; # startAt = "*00:00:00"; # path = with pkgs; [ nix gnutar gzip curl jq ]; # script = '' # set -ex # ln -sfT ${flake.packages.system.site} ${webRoot} # ''; # }; # }; # }; }); }