summaryrefslogtreecommitdiffstats
path: root/shared/2configs/shack-drivedroid.nix
diff options
context:
space:
mode:
Diffstat (limited to 'shared/2configs/shack-drivedroid.nix')
-rw-r--r--shared/2configs/shack-drivedroid.nix55
1 files changed, 30 insertions, 25 deletions
diff --git a/shared/2configs/shack-drivedroid.nix b/shared/2configs/shack-drivedroid.nix
index 3581f9e9..12e4a39c 100644
--- a/shared/2configs/shack-drivedroid.nix
+++ b/shared/2configs/shack-drivedroid.nix
@@ -1,44 +1,49 @@
-{ pkgs, lib, config, ... }:
+{ config, pkgs, ... }:
with import <stockholm/lib>;
let
- repodir = "/var/srv/drivedroid";
- srepodir = shell.escape repodir;
+ root = "/var/srv/drivedroid";
in
{
environment.systemPackages = [ pkgs.drivedroid-gen-repo ];
- systemd.services.drivedroid = {
+ services.nginx = {
+ enable = mkDefault true;
+ virtualHosts.shack-drivedroid = {
+ serverAliases = [
+ "drivedroid.shack"
+ ];
+ # TODO: prepare this somehow
+ locations."/".extraConfig = ''
+ root ${root};
+ index main.json;
+ '';
+ };
+ };
+
+ systemd.services.drivedroid-gen-repo = {
description = "generates drivedroid repo file";
- restartIfChanged = true;
+ path = [
+ pkgs.coreutils
+ pkgs.drivedroid-gen-repo
+ pkgs.inotify-tools
+ ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
Type = "simple";
Restart = "always";
- ExecStartPre = pkgs.writeScript "prepare-drivedroid-gen-repo" ''
- #!/bin/sh
- mkdir -p ${srepodir}/repos
+ ExecStartPre = pkgs.writeDash "prepare-drivedroid-gen-repo" ''
+ mkdir -p ${root}/repos
'';
- ExecStart = pkgs.writeScript "start-drivedroid-gen-repo" ''
- #!/bin/sh
+ ExecStart = pkgs.writeDash "start-drivedroid-gen-repo" ''
+ set -efu
+ cd ${root}
while sleep 60; do
- ${pkgs.inotify-tools}/bin/inotifywait -r ${srepodir} && ${pkgs.drivedroid-gen-repo}/bin/drivedroid-gen-repo --chdir "${srepodir}" repos/ > "${srepodir}/main.json"
+ if inotifywait -r .; then
+ drivedroid-gen-repo repos > main.json
+ fi
done
'';
};
};
-
- krebs.nginx = {
- enable = lib.mkDefault true;
- servers = {
- drivedroid-repo = {
- server-names = [ "drivedroid.shack" ];
- # TODO: prepare this somehow
- locations = lib.singleton (lib.nameValuePair "/" ''
- root ${repodir};
- index main.json;
- '');
- };
- };
- };
}