summaryrefslogtreecommitdiffstats
path: root/krebs/2configs/shack/drivedroid.nix
diff options
context:
space:
mode:
authorlassulus <lassulus@lassul.us>2017-07-14 00:41:36 +0200
committerlassulus <lassulus@lassul.us>2017-07-14 00:41:36 +0200
commit8d128c769aec24d8989db8220d680ea6f4735193 (patch)
tree8c8a6132fda88ba989bbb7fc170b54b1ca242987 /krebs/2configs/shack/drivedroid.nix
parentc4627764062a42f8d952ff90557c1e0d8735485f (diff)
parent58380c82848c3db0bd6c3d74904153f3464c2098 (diff)
Merge remote-tracking branch 'ni/master'
Diffstat (limited to 'krebs/2configs/shack/drivedroid.nix')
-rw-r--r--krebs/2configs/shack/drivedroid.nix49
1 files changed, 49 insertions, 0 deletions
diff --git a/krebs/2configs/shack/drivedroid.nix b/krebs/2configs/shack/drivedroid.nix
new file mode 100644
index 000000000..12e4a39c3
--- /dev/null
+++ b/krebs/2configs/shack/drivedroid.nix
@@ -0,0 +1,49 @@
+{ config, pkgs, ... }:
+with import <stockholm/lib>;
+let
+ root = "/var/srv/drivedroid";
+in
+{
+ environment.systemPackages = [ pkgs.drivedroid-gen-repo ];
+
+ 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";
+ path = [
+ pkgs.coreutils
+ pkgs.drivedroid-gen-repo
+ pkgs.inotify-tools
+ ];
+ wantedBy = [ "multi-user.target" ];
+
+ serviceConfig = {
+ Type = "simple";
+ Restart = "always";
+ ExecStartPre = pkgs.writeDash "prepare-drivedroid-gen-repo" ''
+ mkdir -p ${root}/repos
+ '';
+ ExecStart = pkgs.writeDash "start-drivedroid-gen-repo" ''
+ set -efu
+ cd ${root}
+ while sleep 60; do
+ if inotifywait -r .; then
+ drivedroid-gen-repo repos > main.json
+ fi
+ done
+ '';
+ };
+ };
+}