mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-25 10:36:36 +03:00
oxidized: switch to tmpfiles
This commit is contained in:
parent
59a03d97eb
commit
5fffaee9e9
1 changed files with 50 additions and 8 deletions
|
@ -11,6 +11,8 @@ in
|
||||||
options.services.oxidized = {
|
options.services.oxidized = {
|
||||||
enable = lib.mkEnableOption "the oxidized configuration backup service";
|
enable = lib.mkEnableOption "the oxidized configuration backup service";
|
||||||
|
|
||||||
|
package = lib.mkPackageOption pkgs "oxidized" { };
|
||||||
|
|
||||||
user = lib.mkOption {
|
user = lib.mkOption {
|
||||||
type = lib.types.str;
|
type = lib.types.str;
|
||||||
default = "oxidized";
|
default = "oxidized";
|
||||||
|
@ -70,7 +72,8 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
routerDB = lib.mkOption {
|
routerDB = lib.mkOption {
|
||||||
type = lib.types.path;
|
type = lib.types.nullOr lib.types.path;
|
||||||
|
default = null;
|
||||||
example = lib.literalExpression ''
|
example = lib.literalExpression ''
|
||||||
pkgs.writeText "oxidized-router.db" '''
|
pkgs.writeText "oxidized-router.db" '''
|
||||||
hostname-sw1:powerconnect:username1:password2
|
hostname-sw1:powerconnect:username1:password2
|
||||||
|
@ -94,18 +97,57 @@ in
|
||||||
isSystemUser = true;
|
isSystemUser = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
systemd.tmpfiles.settings."10-oxidized" =
|
||||||
|
{
|
||||||
|
"${cfg.dataDir}" = {
|
||||||
|
d = {
|
||||||
|
mode = "0750";
|
||||||
|
user = cfg.user;
|
||||||
|
group = cfg.group;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
"${cfg.dataDir}/.config" = {
|
||||||
|
d = {
|
||||||
|
mode = "0750";
|
||||||
|
user = cfg.user;
|
||||||
|
group = cfg.group;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
"${cfg.dataDir}/.config/oxidized" = {
|
||||||
|
d = {
|
||||||
|
mode = "0750";
|
||||||
|
user = cfg.user;
|
||||||
|
group = cfg.group;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
"${cfg.dataDir}/.config/oxidized/config" = {
|
||||||
|
L = {
|
||||||
|
argument = "${cfg.configFile}";
|
||||||
|
user = cfg.user;
|
||||||
|
group = cfg.group;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
// lib.optionalAttrs (cfg.routerDB != null) {
|
||||||
|
"${cfg.dataDir}/.config/oxidized/router.db" = {
|
||||||
|
L = {
|
||||||
|
argument = "${cfg.routerDB}";
|
||||||
|
user = cfg.user;
|
||||||
|
group = cfg.group;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
systemd.services.oxidized = {
|
systemd.services.oxidized = {
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
after = [ "network.target" ];
|
after = [ "network.target" ];
|
||||||
|
|
||||||
preStart = ''
|
|
||||||
mkdir -p ${cfg.dataDir}/.config/oxidized
|
|
||||||
ln -f -s ${cfg.routerDB} ${cfg.dataDir}/.config/oxidized/router.db
|
|
||||||
ln -f -s ${cfg.configFile} ${cfg.dataDir}/.config/oxidized/config
|
|
||||||
'';
|
|
||||||
|
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
ExecStart = "${pkgs.oxidized}/bin/oxidized";
|
ExecStart = lib.getExe cfg.package;
|
||||||
User = cfg.user;
|
User = cfg.user;
|
||||||
Group = cfg.group;
|
Group = cfg.group;
|
||||||
UMask = "0077";
|
UMask = "0077";
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue