This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

2configs/kannix: run from worktree flake instead of hardcoded deps

+21 -44
+21 -44
2configs/kannix.nix
··· 10 10 bareRepo = "${stateDir}/repos/kannix.git"; 11 11 srcDir = "${stateDir}/checkout/kannix"; 12 12 13 - pythonEnv = pkgs.python3.withPackages ( 14 - ps: with ps; [ 15 - fastapi 16 - uvicorn 17 - jinja2 18 - python-multipart 19 - bcrypt 20 - websockets 21 - ] 22 - ); 23 - 24 13 configFile = pkgs.writeText "kannix.json" ( 25 14 builtins.toJSON { 26 15 columns = [ ··· 39 28 } 40 29 ); 41 30 42 - vendorDir = pkgs.runCommand "kannix-vendor" { } '' 43 - mkdir -p $out 44 - cp ${pkgs.fetchurl { 45 - url = "https://cdn.jsdelivr.net/npm/diff2html@3.4.56/bundles/css/diff2html.min.css"; 46 - hash = "sha256-0+zA6bKx5chGbBneKb7QUv0IY0ddJYKezIWERu/e03I="; 47 - }} $out/diff2html.min.css 48 - cp ${pkgs.fetchurl { 49 - url = "https://cdn.jsdelivr.net/npm/diff2html@3.4.56/bundles/js/diff2html-ui.min.js"; 50 - hash = "sha256-mXoOqduEwKvM41xkFZr+RtMNz9/SQ0FWGdmz6BAXE4s="; 51 - }} $out/diff2html-ui.min.js 52 - ''; 53 - 54 - kannixDevScript = pkgs.writeShellScript "kannix-dev" '' 31 + kannixScript = pkgs.writeShellScript "kannix-run" '' 55 32 export KANNIX_CONFIG=${configFile} 56 33 export KANNIX_STATE_DIR=${stateDir} 57 - export PYTHONPATH=${srcDir}/src 58 34 export PATH=${ 59 35 lib.makeBinPath [ 60 36 pkgs.tmux 61 37 pkgs.git 38 + pkgs.nix 39 + pkgs.inotify-tools 40 + pkgs.coreutils 62 41 ] 63 42 }:$PATH 64 43 cd ${srcDir} 65 44 66 - # Symlink vendor files 67 - mkdir -p src/kannix/static/vendor 68 - ln -sf ${vendorDir}/diff2html.min.css src/kannix/static/vendor/diff2html.min.css 69 - ln -sf ${vendorDir}/diff2html-ui.min.js src/kannix/static/vendor/diff2html-ui.min.js 45 + while true; do 46 + nix run .# -- \ 47 + --host 127.0.0.1 \ 48 + --port ${toString port} & 49 + PID=$! 70 50 71 - exec ${pythonEnv}/bin/python -m uvicorn \ 72 - kannix.main:create_dev_app \ 73 - --factory \ 74 - --host 127.0.0.1 \ 75 - --port ${toString port} \ 76 - --reload \ 77 - --reload-dir ${srcDir}/src 51 + inotifywait -r -e modify,create,delete,move \ 52 + --exclude '(__pycache__|\.pyc|\.git/|result)' \ 53 + ${srcDir}/src ${srcDir}/flake.nix ${srcDir}/flake.lock ${srcDir}/package.nix ${srcDir}/pyproject.toml 54 + 55 + echo "Change detected, restarting..." 56 + kill $PID 2>/dev/null 57 + wait $PID 2>/dev/null 58 + sleep 1 59 + done 78 60 ''; 79 61 in 80 62 { ··· 95 77 self.keys.ssh.massulus.public 96 78 ]; 97 79 packages = [ 98 - pythonEnv 99 80 pkgs.tmux 100 81 pkgs.git 101 82 self.packages.${pkgs.system}.s 102 - (pkgs.writeShellScriptBin "kannix-ctl" '' 103 - export PYTHONPATH=${srcDir}/src 104 - exec ${pythonEnv}/bin/python -m kannix.ctl "$@" 105 - '') 106 83 ]; 107 84 }; 108 85 ··· 129 106 }; 130 107 131 108 systemd.user.services.kannix = { 132 - description = "Kannix dev server"; 109 + description = "Kannix kanban server"; 133 110 wantedBy = [ "default.target" ]; 134 111 after = [ "network.target" ]; 135 112 path = [ 136 113 pkgs.tmux 137 114 pkgs.git 138 - pythonEnv 115 + pkgs.nix 139 116 ]; 140 117 serviceConfig = { 141 118 Type = "simple"; 142 - ExecStart = toString kannixDevScript; 119 + ExecStart = toString kannixScript; 143 120 Restart = "on-failure"; 144 121 RestartSec = 5; 145 122 WorkingDirectory = srcDir;