diff --git a/config.nix b/config.nix index 4689ca5..95b2b0e 100644 --- a/config.nix +++ b/config.nix @@ -8,4 +8,7 @@ mlPublicURL = "http://localhost:4000"; listenProto = "tcp"; listenAddr = ":4000"; + + # If empty then a derived static directory is used + staticProxyURL = "http://127.0.0.1:4002"; } diff --git a/default.nix b/default.nix index 93ba9d8..8d20c38 100644 --- a/default.nix +++ b/default.nix @@ -7,7 +7,7 @@ }) {}, baseConfig ? import ./config.nix, - skipServices ? [], + baseSkipServices ? [], }: rec { @@ -17,6 +17,12 @@ redisListenPath = "${config.runDir}/redis"; }; + skipServices = baseSkipServices ++ ( + if baseConfig.staticProxyURL == "" + then [ "static" ] + else [] + ); + static = (import ./static) { inherit pkgs; }; srv = pkgs.callPackage (import ./srv) { @@ -53,6 +59,13 @@ numprocesses = 1 ''; + staticCircusCfg = '' + [watcher:static] + cmd = ${static.serve}/bin/static-serve + numprocesses = 1 + working_dir = ./static + ''; + circusCfg = pkgs.writeText "mediocre-blog-circusCfg" '' [circus] endpoint = tcp://127.0.0.1:0 @@ -61,6 +74,8 @@ ${if (!builtins.elem "srv" skipServices) then srvCircusCfg else ""} ${if (!builtins.elem "redis" skipServices) then redisCircusCfg else ""} + + ${if (!builtins.elem "static" skipServices) then staticCircusCfg else ""} ''; entrypoint = pkgs.writeScript "mediocre-blog-entrypoint" '' diff --git a/srv-dev-env.sh b/srv-dev-env.sh index 2df9918..9d2ee87 100644 --- a/srv-dev-env.sh +++ b/srv-dev-env.sh @@ -11,7 +11,7 @@ test_cfg="(import ./config.nix) // { entrypoint=$(nix-build --no-out-link -A entrypoint \ --arg baseConfig "$test_cfg" \ - --arg skipServices '["srv"]') + --arg baseSkipServices '["srv"]') $entrypoint & trap "kill $!; wait; rm -rf $test_dir" EXIT