about summary refs log tree commit diff
path: root/nixos/modules/services/networking/quassel.nix
diff options
context:
space:
mode:
authorAristid Breitkreuz <aristidb@gmail.com>2014-11-08 14:59:07 +0100
committerAristid Breitkreuz <aristidb@gmail.com>2014-11-08 14:59:25 +0100
commitcf4a976ced81749a46cf848315fde12ccb79dc2c (patch)
treea2fc353233703e77a26e1dc4a9cecb53bc452839 /nixos/modules/services/networking/quassel.nix
parent7885c2ed12a353aa92da2087b2ba1e6adac7c069 (diff)
downloadnixlib-cf4a976ced81749a46cf848315fde12ccb79dc2c.tar
nixlib-cf4a976ced81749a46cf848315fde12ccb79dc2c.tar.gz
nixlib-cf4a976ced81749a46cf848315fde12ccb79dc2c.tar.bz2
nixlib-cf4a976ced81749a46cf848315fde12ccb79dc2c.tar.lz
nixlib-cf4a976ced81749a46cf848315fde12ccb79dc2c.tar.xz
nixlib-cf4a976ced81749a46cf848315fde12ccb79dc2c.tar.zst
nixlib-cf4a976ced81749a46cf848315fde12ccb79dc2c.zip
quassel: make a proper systemd unit (also properly works in containers now)
Diffstat (limited to 'nixos/modules/services/networking/quassel.nix')
-rw-r--r--nixos/modules/services/networking/quassel.nix20
1 files changed, 11 insertions, 9 deletions
diff --git a/nixos/modules/services/networking/quassel.nix b/nixos/modules/services/networking/quassel.nix
index 749e5dcebb61..579d62884c78 100644
--- a/nixos/modules/services/networking/quassel.nix
+++ b/nixos/modules/services/networking/quassel.nix
@@ -74,21 +74,23 @@ in
         gid = config.ids.gids.quassel;
       }];
 
-    jobs.quassel =
+    systemd.services.quassel =
       { description = "Quassel IRC client daemon";
 
-        startOn = "ip-up";
+        wantedBy = [ "multi-user.target" ];
+        after = [ "network.target" ];
 
         preStart = ''
-            mkdir -p ${cfg.dataDir}
-            chown ${user} ${cfg.dataDir}
+          mkdir -p ${cfg.dataDir}
+          chown ${user} ${cfg.dataDir}
         '';
 
-        exec = ''
-            ${pkgs.su}/bin/su -s ${pkgs.stdenv.shell} ${user} \
-                -c '${quassel}/bin/quasselcore --listen=${cfg.interface}\
-                    --port=${toString cfg.portNumber} --configdir=${cfg.dataDir}'
-        '';
+        serviceConfig =
+        {
+          ExecStart = "${quassel}/bin/quasselcore --listen=${cfg.interface} --port=${toString cfg.portNumber} --configdir=${cfg.dataDir}";
+          User = user;
+          PermissionsStartOnly = true;
+        };
       };
 
   };