From e636ea323c7e35d5fce81c30d7dd8889cc316fff Mon Sep 17 00:00:00 2001 From: Matthias Johnson Date: Sun, 15 Feb 2026 00:12:42 -0700 Subject: [PATCH] Add gum-styled annotations and less paging to VHS demo tapes Annotations use demo/note.sh (gum style with clear) wrapped in Hide/Show so only the styled box appears. Long output commands pipe through less with search to highlight key fields. Co-Authored-By: Claude Opus 4.6 --- demo/editmode.tape | 29 ++++++++++++---- demo/note.sh | 3 ++ demo/notifications.tape | 54 +++++++++++++++++++++++------ demo/quickstart.tape | 77 +++++++++++++++++++++++++++++++++++++---- 4 files changed, 140 insertions(+), 23 deletions(-) create mode 100755 demo/note.sh diff --git a/demo/editmode.tape b/demo/editmode.tape index 628d144..69313ac 100644 --- a/demo/editmode.tape +++ b/demo/editmode.tape @@ -12,9 +12,12 @@ Set TypingSpeed 50ms Sleep 1s # First create some jobs to edit -Type "# Create some jobs to work with" +Hide +Type "./demo/note.sh 'Creating some jobs to work with'" Enter Sleep 500ms +Show +Sleep 1s Type "systab -t 'every 5 minutes' -c 'echo ping'" Enter Sleep 2s @@ -23,8 +26,11 @@ Enter Sleep 2s # Open edit mode with EDITOR=nano for visibility -Type "# Open edit mode — add notifications, create and modify jobs" +Hide +Type "./demo/note.sh 'Opening edit mode — add notifications, create and modify jobs'" Enter +Sleep 500ms +Show Sleep 1s Type "EDITOR=nano systab -E" Sleep 500ms @@ -54,17 +60,28 @@ Ctrl+X Sleep 3s # Show the result -Type "# See the changes applied" +Hide +Type "./demo/note.sh 'Changes applied — checking status'" Enter Sleep 500ms -Type "systab -S" +Show +Sleep 1s +Type "systab -S | less" Sleep 500ms Enter -Sleep 4s +Sleep 2s +Type "/Job:" +Enter +Sleep 3s +Type "q" +Sleep 1s # Re-open edit mode to show flags are persisted -Type "# Re-open edit mode — flags are persisted" +Hide +Type "./demo/note.sh 'Re-opening edit mode — flags are persisted'" Enter +Sleep 500ms +Show Sleep 1s Type "EDITOR=nano systab -E" Sleep 500ms diff --git a/demo/note.sh b/demo/note.sh new file mode 100755 index 0000000..d5f48fb --- /dev/null +++ b/demo/note.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash +clear +gum style --bold --foreground 6 --border rounded --border-foreground 8 "$*" diff --git a/demo/notifications.tape b/demo/notifications.tape index dd20496..c9ec99d 100644 --- a/demo/notifications.tape +++ b/demo/notifications.tape @@ -12,8 +12,11 @@ Set TypingSpeed 50ms Sleep 1s # Desktop notification — success case -Type "# Desktop notification on success/failure" +Hide +Type "./demo/note.sh 'Desktop notification on success'" Enter +Sleep 500ms +Show Sleep 1s Type "systab -t 'in 1 minute' -c 'echo success' -i" Sleep 500ms @@ -21,14 +24,23 @@ Enter Sleep 2s # Desktop notification — failure case +Hide +Type "./demo/note.sh 'Desktop notification on failure'" +Enter +Sleep 500ms +Show +Sleep 1s Type "systab -t 'in 1 minute' -c 'exit 1' -i" Sleep 500ms Enter Sleep 2s # Email notification -Type "# Email notification via sendmail" +Hide +Type "./demo/note.sh 'Email notification via sendmail'" Enter +Sleep 500ms +Show Sleep 1s Type "systab -t 'in 1 minute' -c 'echo test' -m user@example.com" Sleep 500ms @@ -36,8 +48,11 @@ Enter Sleep 2s # Both notifications -Type "# Both desktop and email" +Hide +Type "./demo/note.sh 'Both desktop and email notifications'" Enter +Sleep 500ms +Show Sleep 1s Type "systab -t 'every day at 9am' -c '/home/user/backup.sh' -i -m admin@example.com" Sleep 500ms @@ -45,18 +60,37 @@ Enter Sleep 2s # Show the generated service file to see ExecStopPost lines -Type "# Inspect generated service file" +Hide +Type "./demo/note.sh 'Inspecting generated service file'" Enter +Sleep 500ms +Show Sleep 1s -Type "cat ~/.config/systemd/user/systab_*.service | head -20" +Type "cat ~/.config/systemd/user/systab_*.service | less" Sleep 500ms Enter -Sleep 4s - -# Check status -Type "systab -S" -Sleep 500ms +Sleep 2s +Type "/ExecStopPost" Enter Sleep 3s +Type "q" +Sleep 1s + +# Check status +Hide +Type "./demo/note.sh 'Checking status of all jobs'" +Enter +Sleep 500ms +Show +Sleep 1s +Type "systab -S | less" +Sleep 500ms +Enter +Sleep 2s +Type "/Job:" +Enter +Sleep 3s +Type "q" +Sleep 1s Sleep 2s diff --git a/demo/quickstart.tape b/demo/quickstart.tape index 2ef1ac9..a914c22 100644 --- a/demo/quickstart.tape +++ b/demo/quickstart.tape @@ -12,48 +12,111 @@ Set TypingSpeed 50ms Sleep 1s # Create a recurring job +Hide +Type "./demo/note.sh 'Creating a recurring health check (every 5 minutes)'" +Enter +Sleep 500ms +Show +Sleep 1s Type "systab -t 'every 5 minutes' -c 'echo health check OK'" Sleep 500ms Enter Sleep 2s # Create a one-time job +Hide +Type "./demo/note.sh 'Creating a one-time reminder (30 minutes from now)'" +Enter +Sleep 500ms +Show +Sleep 1s Type "systab -t 'in 30 minutes' -c 'echo reminder: meeting soon'" Sleep 500ms Enter Sleep 2s # Check status of all jobs -Type "systab -S" +Hide +Type "./demo/note.sh 'Checking status of all jobs'" +Enter +Sleep 500ms +Show +Sleep 1s +Type "systab -S | less" Sleep 500ms Enter -Sleep 4s - -# View logs -Type "systab -L" -Sleep 500ms +Sleep 2s +Type "/Job:" Enter Sleep 3s +Type "q" +Sleep 1s + +# View logs +Hide +Type "./demo/note.sh 'Viewing job logs'" +Enter +Sleep 500ms +Show +Sleep 1s +Type "systab -L | less" +Sleep 500ms +Enter +Sleep 2s +Type "/Logs for" +Enter +Sleep 3s +Type "q" +Sleep 1s # Pause a job (uses the first job ID from status) +Hide +Type "./demo/note.sh 'Pausing a job'" +Enter +Sleep 500ms +Show +Sleep 1s Type "systab -P $(systab -S 2>/dev/null | grep -m1 'Job:' | awk '{print $2}')" Sleep 500ms Enter Sleep 2s # Show it's paused -Type "systab -S" +Hide +Type "./demo/note.sh 'Verifying job is paused'" +Enter +Sleep 500ms +Show +Sleep 1s +Type "systab -S | less" Sleep 500ms Enter +Sleep 2s +Type "/Disabled" +Enter Sleep 3s +Type "q" +Sleep 1s # Resume it +Hide +Type "./demo/note.sh 'Resuming the paused job'" +Enter +Sleep 500ms +Show +Sleep 1s Type "systab -R $(systab -S 2>/dev/null | grep -m1 'Disabled' -B4 | grep 'Job:' | awk '{print $2}')" Sleep 500ms Enter Sleep 2s # Clean up completed one-time jobs +Hide +Type "./demo/note.sh 'Cleaning up completed one-time jobs'" +Enter +Sleep 500ms +Show +Sleep 1s Type "systab -C" Sleep 500ms Enter