couchdb service: adding customizable config file which is writable by couchdb
This commit is contained in:
parent
f60fffa59c
commit
cc160a196a
@ -126,6 +126,16 @@ in {
|
|||||||
Extra configuration. Overrides any other cofiguration.
|
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 `dirname ${cfg.logFile}`;
|
||||||
mkdir -p ${cfg.databaseDir};
|
mkdir -p ${cfg.databaseDir};
|
||||||
mkdir -p ${cfg.viewIndexDir};
|
mkdir -p ${cfg.viewIndexDir};
|
||||||
|
touch ${cfg.configFile}
|
||||||
|
|
||||||
if [ "$(id -u)" = 0 ]; then
|
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.databaseDir}
|
||||||
chown ${cfg.user}:${cfg.group} ${cfg.viewIndexDir}
|
chown ${cfg.user}:${cfg.group} ${cfg.viewIndexDir}
|
||||||
|
chown ${cfg.user}:${cfg.group} ${cfg.configFile}
|
||||||
fi
|
fi
|
||||||
'';
|
'';
|
||||||
|
|
||||||
@ -158,7 +170,7 @@ in {
|
|||||||
PermissionsStartOnly = true;
|
PermissionsStartOnly = true;
|
||||||
User = cfg.user;
|
User = cfg.user;
|
||||||
Group = cfg.group;
|
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}";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user