summaryrefslogtreecommitdiffstats
path: root/shared/2configs/shack/drivedroid.nix
diff options
context:
space:
mode:
authorlassulus <lass@lassul.us>2017-06-01 12:49:36 +0200
committerlassulus <lass@lassul.us>2017-06-01 12:49:36 +0200
commite50bc4f3eb3dac13bba4ae6158e839a52455c3c3 (patch)
treeb3c1fc1f3e00312e92e4ab747c31839db665eebd /shared/2configs/shack/drivedroid.nix
parent73b073c3fe037f31e05828a1071c9b4b19f7a2ff (diff)
parent9e04d0132133840fba14aca194f18925e3f353d5 (diff)
Merge remote-tracking branch 'gum/master'
Diffstat (limited to 'shared/2configs/shack/drivedroid.nix')
-rw-r--r--shared/2configs/shack/drivedroid.nix49
1 files changed, 49 insertions, 0 deletions
diff --git a/shared/2configs/shack/drivedroid.nix b/shared/2configs/shack/drivedroid.nix
new file mode 100644
index 000000000..12e4a39c3
--- /dev/null
+++ b/shared/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
+ '';
+ };
+ };
+}