lol

oxidized: switch to tmpfiles (#402646)

authored by

Paul Haerle and committed by
GitHub
d1a07176 a854493f

+50 -8
+50 -8
nixos/modules/services/admin/oxidized.nix
··· 11 11 options.services.oxidized = { 12 12 enable = lib.mkEnableOption "the oxidized configuration backup service"; 13 13 14 + package = lib.mkPackageOption pkgs "oxidized" { }; 15 + 14 16 user = lib.mkOption { 15 17 type = lib.types.str; 16 18 default = "oxidized"; ··· 70 72 }; 71 73 72 74 routerDB = lib.mkOption { 73 - type = lib.types.path; 75 + type = lib.types.nullOr lib.types.path; 76 + default = null; 74 77 example = lib.literalExpression '' 75 78 pkgs.writeText "oxidized-router.db" ''' 76 79 hostname-sw1:powerconnect:username1:password2 ··· 94 97 isSystemUser = true; 95 98 }; 96 99 100 + systemd.tmpfiles.settings."10-oxidized" = 101 + { 102 + "${cfg.dataDir}" = { 103 + d = { 104 + mode = "0750"; 105 + user = cfg.user; 106 + group = cfg.group; 107 + }; 108 + }; 109 + 110 + "${cfg.dataDir}/.config" = { 111 + d = { 112 + mode = "0750"; 113 + user = cfg.user; 114 + group = cfg.group; 115 + }; 116 + }; 117 + 118 + "${cfg.dataDir}/.config/oxidized" = { 119 + d = { 120 + mode = "0750"; 121 + user = cfg.user; 122 + group = cfg.group; 123 + }; 124 + }; 125 + 126 + "${cfg.dataDir}/.config/oxidized/config" = { 127 + L = { 128 + argument = "${cfg.configFile}"; 129 + user = cfg.user; 130 + group = cfg.group; 131 + }; 132 + }; 133 + 134 + } 135 + // lib.optionalAttrs (cfg.routerDB != null) { 136 + "${cfg.dataDir}/.config/oxidized/router.db" = { 137 + L = { 138 + argument = "${cfg.routerDB}"; 139 + user = cfg.user; 140 + group = cfg.group; 141 + }; 142 + }; 143 + }; 144 + 97 145 systemd.services.oxidized = { 98 146 wantedBy = [ "multi-user.target" ]; 99 147 after = [ "network.target" ]; 100 148 101 - preStart = '' 102 - mkdir -p ${cfg.dataDir}/.config/oxidized 103 - ln -f -s ${cfg.routerDB} ${cfg.dataDir}/.config/oxidized/router.db 104 - ln -f -s ${cfg.configFile} ${cfg.dataDir}/.config/oxidized/config 105 - ''; 106 - 107 149 serviceConfig = { 108 - ExecStart = "${pkgs.oxidized}/bin/oxidized"; 150 + ExecStart = lib.getExe cfg.package; 109 151 User = cfg.user; 110 152 Group = cfg.group; 111 153 UMask = "0077";