Commit graph

7 commits

Author SHA1 Message Date
b72a95f4ed Refresh demo tapes: retire editmode, update commands, improve quickstart
- Remove editmode.tape; quickstart now takes the editmode.png screenshot
  and demonstrates adding a new job in edit mode (new:n=diskcheck_home)
- healthcheck_home uses 'uptime', monitor_home uses 'ping -c 1 localhost'
- all-features one-time reminder gains -i (desktop notification example)
- 19 tape commands total (was 24)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-02 01:34:20 -07:00
530a2162bf Add -R restart operation for timer and service jobs
Resets the countdown for timer jobs and restarts the process for
service jobs. Disabled jobs are refused with a clear error message.
Accepts hex ID or name like all other management operations.

- restartJob() function with disabled-job guard
- getopts R:, manage_count, mutual-exclusion error messages updated
- 9 new tests in test.sh (112 total), 1 new tape command (24 total)
- README options table, names prose, and future-ideas checklist updated

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-02 01:17:12 -07:00
8e45f7917c Add -X delete operation, demo tape tests, and consolidate demos
- Add -X <id|name> to stop, disable, and remove a job's unit files;
  mutually exclusive with all other management options; 13 new tests
- Add demo/test-tapes.sh to verify all VHS tape commands run cleanly;
  wired into pre-commit hook alongside test.sh (combined badge count)
- Rename demo job names to *_home variants to avoid clashing with real
  user jobs; add per-tape preflight cleanup via -X
- Consolidate four demo GIFs into quickstart + all-features + editmode
  screenshot; remove notifications/services tapes

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-02 01:02:13 -07:00
0943a639cc Add -l tests, update editmode tape, fix service schedule pattern
All checks were successful
CI / shellcheck (push) Successful in 20s
5 new tests for -l: service job presence, timer job presence, pipe
alignment, and mutual exclusivity checks. Fix | service | pattern in
edit mode test to handle alignment padding. Add -l demo step to
editmode.tape before opening the editor.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-28 01:45:44 -07:00
6ea5b7f849 Show job name in notifications via dynamic runtime lookup
All checks were successful
CI / shellcheck (push) Successful in 17s
Instead of embedding the name as a literal string at job creation time,
ExecStopPost now greps # SYSTAB_NAME= from the service file at runtime.
This ensures notifications always show the current name even for jobs
created without a name or renamed after their ExecStopPost was written.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 19:33:50 -07:00
164087ab22 Add persistent service jobs (-s flag)
Some checks failed
CI / shellcheck (push) Failing after 19s
Introduces a new job type for long-running systemd user services alongside
the existing timer-based jobs. Services use Type=simple with Restart=on-failure
and WantedBy=default.target — no .timer unit is created.

- New -s flag creates a service job; mutually exclusive with -t/-i/-m/-o
- Service jobs tagged with # SYSTAB_TYPE=service in their unit file
- enable/disable (-E/-D) start/stop the service in addition to toggling
  the enabled state, mirroring timer behaviour
- -S status shows ActiveState/SubState from systemd directly (avoids
  false "Inactive" for services in activating state)
- -L logs, -e edit mode, -D/-E disable/enable all handle service jobs
- Edit mode represents service jobs with 'service' as the schedule column
  (e.g. new:s,n=name | service | /path/to/cmd)
- daemon-reload runs before enable/start during service creation so
  systemd registers the new unit file first
- 22 new tests covering unit file contents, active state, disable/enable,
  named services, edit mode representation, and flag conflict errors
- New demo/services.tape and regenerated demo GIFs

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 01:00:07 -07:00
f4cb6c77f6 adding tests
Some checks are pending
CI / shellcheck (push) Waiting to run
2026-02-15 12:10:09 -07:00