{"id":17874405,"url":"https://github.com/modprog/autod","last_synced_at":"2025-04-03T00:13:25.151Z","repository":{"id":105083236,"uuid":"351358066","full_name":"ModProg/autod","owner":"ModProg","description":null,"archived":false,"fork":false,"pushed_at":"2021-04-10T19:58:59.000Z","size":871,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-08T14:22:37.341Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ModProg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-03-25T08:16:42.000Z","updated_at":"2021-04-10T19:59:01.000Z","dependencies_parsed_at":null,"dependency_job_id":"6df9d14c-feba-450b-9f6f-bca3764d2fe9","html_url":"https://github.com/ModProg/autod","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ModProg%2Fautod","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ModProg%2Fautod/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ModProg%2Fautod/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ModProg%2Fautod/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ModProg","download_url":"https://codeload.github.com/ModProg/autod/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246911467,"owners_count":20853657,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-28T11:08:49.824Z","updated_at":"2025-04-03T00:13:25.092Z","avatar_url":"https://github.com/ModProg.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# autod\n\n- [x] Create oneshot service with `autod \u003ccommand\u003e`\n- [x] Create service to run on SystemdTarget `autod \u003ccommand\u003e on \u003cSystemdTarget\u003e`\n- [x] Create service to run on SystemdTimer `autod \u003ccommand\u003e when \u003cTimePattern\u003e`\n- [ ] `run` and `enable`\n- [ ] Description\n- [ ] User/System\n- [ ] other fields\n- [ ] Create Timer for existing Service\n- [ ] Add Timer entry to existing Timer\n- [ ] Add \"ON\" event to existing Service\n\n## Open Questions\n\n- [x] Should OneShot be the default? no, I think.\n- [ ] Do timers need, `[Install]\\n WantedBy=timerts.target`?\n\n## Fields to Consider\n\n### Type\n\n- [ ] simple\n- [ ] oneshot\n\n(- [ ] forking)\n\n### Target\n\n- [ ] default.target\n- [ ] timers.target\n\n## Timer\n\nMultiple entries, separated by `,`\n\n### Timespan\n\n#### Units\n\nOnly English, test with `systemd-analize timespan`, enforce no unit = seconds\n\n- usec, us, µs\n- msec, ms\n- seconds, second, sec, s\n- minutes, minute, min, m\n- hours, hour, hr, h\n- days, day, d\n- weeks, week, w\n- months, month, M (defined as 30.44 days)\n- years, year, y (defined as 365.25 days)\n\n#### Fields\n\n| Systemd           | Autod           | Description                     |\n| ----------------- | --------------- | ------------------------------- |\n| OnActiveSec       | SinceTimer, ST  | the timer last ran              |\n| OnBootSec         | SinceBoot, SB   | boot                            |\n| OnStartupSec      | SinceLogin, SL  | Service manager started (login) |\n| OnUnitActiveSec   | SinceSrvAct, SA | Service was last started        |\n| OnUnitInactiveSec | SinceSrvEnd, SE | Service last stopped            |\n| \"OnCalendar\"      | IN              | Run Service once                |\n| \"OnCalendar\"      | InAt, IA        | Run Service in smth at smth     |\n| \"OnCalendar\"      | Every, EV       | Run the service every smth      |\n| \"OnCalendar\"      | EveryAt, EA     | Run every smth at smth          |\n\n##### InAt\n\n- `In 5d At 4am` =\u003e in 5 days at 4am\n- `InAt 5y 05-01 00:04` =\u003e in 5 years at 05-01 00:04\n- `I 2w At Mon` =\u003e in 2 weeks at Monday (prop midnight)\n- `I 3M A *:*:2` =\u003e in 3 months every minute at 2 seconds (but for how long?)\n\nThe same for EveryAt\n\n**TODO** Implement some form of duration\n\n#### Shorthands for EV\n\n| Systemd  | Autod |\n| -------- | ----- |\n| minutely | mly   |\n| hourly   | hly   |\n| daily    | dly   |\n| monthly  | Mly   |\n| weekly   | wly   |\n| yearly   | yly   |\n\n### Calendar\n\nOnCalendar =\u003e C\n\n- Some form of universal from to ``\n- From A to B Every C mins\n\n## Refactoring\n\n- Remove a lot of `Option\u003c\u003e` and replace with the `0` variant (is\n  already the behavior)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmodprog%2Fautod","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmodprog%2Fautod","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmodprog%2Fautod/lists"}