summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorRok Garbas <rok@garbas.si>2014-06-05 15:12:30 +0100
committerRok Garbas <rok@garbas.si>2014-06-06 15:30:58 +0100
commitcc160a196a5d870e3301d0ed3d6187c048fe82c9 (patch)
tree9629e04f29b58e819270efb030ee82bb6ced646c /nixos
parentf60fffa59c8b87d25b880a8c3ec567957409b59a (diff)
downloadnixlib-cc160a196a5d870e3301d0ed3d6187c048fe82c9.tar
nixlib-cc160a196a5d870e3301d0ed3d6187c048fe82c9.tar.gz
nixlib-cc160a196a5d870e3301d0ed3d6187c048fe82c9.tar.bz2
nixlib-cc160a196a5d870e3301d0ed3d6187c048fe82c9.tar.lz
nixlib-cc160a196a5d870e3301d0ed3d6187c048fe82c9.tar.xz
nixlib-cc160a196a5d870e3301d0ed3d6187c048fe82c9.tar.zst
nixlib-cc160a196a5d870e3301d0ed3d6187c048fe82c9.zip
couchdb service: adding customizable config file which is writable by couchdb
Diffstat (limited to 'nixos')
-rw-r--r--nixos/modules/services/databases/couchdb.nix16
1 files changed, 14 insertions, 2 deletions
diff --git a/nixos/modules/services/databases/couchdb.nix b/nixos/modules/services/databases/couchdb.nix
index 5088c7416810..e1fe6be6f6a3 100644
--- a/nixos/modules/services/databases/couchdb.nix
+++ b/nixos/modules/services/databases/couchdb.nix
@@ -126,6 +126,16 @@ in {
           Extra configuration. Overrides any other cofiguration.
         '';
       };
+
+      configFile = mkOption {
+        type = types.string;
+        default = "/var/lib/couchdb/couchdb.ini";
+        description = ''
+          Custom configuration file. File needs to be readable and writable
+          from couchdb user/group.
+        '';
+      };
+
     };
 
   };
@@ -146,11 +156,13 @@ in {
         mkdir -p `dirname ${cfg.logFile}`;
         mkdir -p ${cfg.databaseDir};
         mkdir -p ${cfg.viewIndexDir};
+        touch ${cfg.configFile}
 
         if [ "$(id -u)" = 0 ]; then
-          chown ${cfg.user}:${cfg.group} `dirname ${cfg.uriFile}`
+          chown ${cfg.user}:${cfg.group} ${cfg.uriFile}
           chown ${cfg.user}:${cfg.group} ${cfg.databaseDir}
           chown ${cfg.user}:${cfg.group} ${cfg.viewIndexDir}
+          chown ${cfg.user}:${cfg.group} ${cfg.configFile}
         fi
         '';
 
@@ -158,7 +170,7 @@ in {
         PermissionsStartOnly = true;
         User = cfg.user;
         Group = cfg.group;
-        ExecStart = "${cfg.package}/bin/couchdb -a ${configFile} -a ${pkgs.writeText "couchdb-extra.ini" cfg.extraConfig}";
+        ExecStart = "${cfg.package}/bin/couchdb -a ${configFile} -a ${pkgs.writeText "couchdb-extra.ini" cfg.extraConfig} -a ${cfg.configFile}";
       };
     };