57 lines
1.1 KiB
Nix
57 lines
1.1 KiB
Nix
let
|
|
mkCronScript = name: src: ''
|
|
. /etc/profile;
|
|
set -x
|
|
# autogenreated ${name}
|
|
${src}
|
|
'';
|
|
jobToUserService = job: {
|
|
name = "${job.name}";
|
|
value = {
|
|
script = mkCronScript "${job.name}_script" job.script;
|
|
inherit (job) startAt path;
|
|
};
|
|
};
|
|
jobToService = job: {
|
|
name = "${job.name}";
|
|
value = {
|
|
script = mkCronScript "${job.name}_script" job.script;
|
|
inherit (job) startAt path;
|
|
serviceConfig = { User = "${job.user}"; };
|
|
};
|
|
};
|
|
buildShell = pkgs:
|
|
pkgs.mkShell {
|
|
shellHook = ''
|
|
PS1='\u@\h:\w; '
|
|
( . ./common.sh; start ) || true;
|
|
'';
|
|
nativeBuildInputs = with pkgs; [
|
|
deadnix
|
|
git
|
|
git-bug
|
|
jq
|
|
nil
|
|
nix-diff
|
|
nix-output-monitor
|
|
shfmt
|
|
sops
|
|
ssh-to-age
|
|
ssh-to-pgp
|
|
statix
|
|
];
|
|
};
|
|
|
|
buildVer = self:
|
|
let state = self.rev or "DIRTY";
|
|
in {
|
|
system.configurationRevision = state;
|
|
system.autoUpgrade.enable = state != "DIRTY";
|
|
};
|
|
|
|
xinlib = {
|
|
inherit buildVer mkCronScript jobToUserService jobToService buildShell;
|
|
};
|
|
|
|
in xinlib
|