basant/flake.nix

88 lines
2.7 KiB
Nix

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