47 lines
1.3 KiB
Python
47 lines
1.3 KiB
Python
uberspaceify = repo.libs.uberspace.Uberspaceify(node)
|
|
|
|
directories = uberspaceify.directories({
|
|
f'/home/{node.username}/.config/cron.d': {
|
|
"purge": True,
|
|
},
|
|
})
|
|
|
|
crontab_files = {}
|
|
for crontab_name, crontab_line in node.metadata.get("cron/jobs", {}).items():
|
|
crontab_files[f'/home/{node.username}/.config/cron.d/{crontab_name}'] = {
|
|
"content": crontab_line + "\n",
|
|
}
|
|
|
|
files = uberspaceify.files({
|
|
f'/home/{node.username}/bin/crontab-dir-generate-crontab': {
|
|
"source": "crontab-dir-generate-crontab.sh",
|
|
"mode": "0750",
|
|
},
|
|
f'/home/{node.username}/bin/crontab-dir-is-sync': {
|
|
"source": "crontab-dir-is-sync.sh",
|
|
"mode": "0750",
|
|
"needs": [
|
|
f'file:/home/{node.username}/bin/crontab-dir-generate-crontab',
|
|
],
|
|
},
|
|
f'/home/{node.username}/bin/crontab-dir-update': {
|
|
"source": "crontab-dir-update.sh",
|
|
"mode": "0750",
|
|
"needs": [
|
|
f'file:/home/{node.username}/bin/crontab-dir-generate-crontab',
|
|
],
|
|
},
|
|
**crontab_files,
|
|
})
|
|
|
|
actions = {
|
|
"update_crontab": {
|
|
"command": 'crontab-dir-update',
|
|
"unless": 'crontab-dir-is-sync',
|
|
"needs": [
|
|
f'file:/home/{node.username}/bin/crontab-dir-update',
|
|
f'file:/home/{node.username}/bin/crontab-dir-is-sync',
|
|
],
|
|
},
|
|
}
|