parent
10e9705a86
commit
9587192c68
@ -0,0 +1,81 @@ |
||||
{pkgs, config, ...}: |
||||
|
||||
let |
||||
|
||||
inherit (pkgs.lib) mkOption mkIf singleton; |
||||
|
||||
inherit (pkgs) uptimed; |
||||
|
||||
stateDir = "/var/spool/uptimed"; |
||||
|
||||
uptimedUser = "uptimed"; |
||||
|
||||
modprobe = config.system.sbin.modprobe; |
||||
|
||||
uptimedFlags = ""; |
||||
|
||||
in |
||||
|
||||
{ |
||||
|
||||
###### interface |
||||
|
||||
options = { |
||||
|
||||
services.uptimed = { |
||||
|
||||
enable = mkOption { |
||||
default = true; |
||||
description = '' |
||||
Uptimed allows you to track your highest uptimes. |
||||
''; |
||||
}; |
||||
|
||||
}; |
||||
|
||||
}; |
||||
|
||||
|
||||
###### implementation |
||||
|
||||
config = mkIf config.services.uptimed.enable { |
||||
|
||||
users.extraUsers = singleton |
||||
{ name = uptimedUser; |
||||
uid = config.ids.uids.uptimed; |
||||
description = "Uptimed daemon user"; |
||||
home = stateDir; |
||||
}; |
||||
|
||||
jobs = singleton { |
||||
|
||||
name = "uptimed"; |
||||
|
||||
job = '' |
||||
description "Uptimed daemon" |
||||
|
||||
start on startup |
||||
stop on shutdown |
||||
|
||||
start script |
||||
|
||||
mkdir -m 0755 -p ${stateDir} |
||||
chown ${uptimedUser} ${stateDir} |
||||
|
||||
# Needed to run uptimed as an unprivileged user. |
||||
${modprobe}/sbin/modprobe capability || true |
||||
|
||||
if ! test -f ${stateDir}/bootid ; then |
||||
${uptimed}/sbin/uptimed -b |
||||
fi |
||||
|
||||
end script |
||||
|
||||
respawn ${uptimed}/sbin/uptimed ${uptimedFlags} |
||||
''; |
||||
|
||||
}; |
||||
|
||||
}; |
||||
|
||||
} |
Loading…
Reference in new issue