UC Davis Library — Digitization Services toolkit.
A single repo of small, composable scripts for the digitization workflow: capture hand-off, backup, AV digitization, course-video compression, and delivery to Special Collections.
Owned by the Digitization Services Specialist (John Pike). Used by John + 5 student assistants across the Mac Studio capture station, two M4 Mac minis, and laptops.
git clone https://github.com/jmpucd/session-workflow.git ~/code/digitization-tasks-helper
cd ~/code/digitization-tasks-helper
./install.shinstall.sh is idempotent — re-run after every git pull.
It will:
- Install Homebrew dependencies from
Brewfile(rsync, ffmpeg, exiftool, etc.). - Symlink
bin/digiinto/usr/local/bin(or~/.local/binon Apple Silicon). - Pin a stable machine name in
etc/machine-name(gitignored; defaults to the Sharing-pane "Local hostname" — edit the file to pick a friendlier name) and createetc/machines/<name>.yamlif missing (copied from the template — edit it afterward to fill in this machine's paths; seeetc/machines/README.md).
Everything is dispatched through a single digi command:
digi help # list available subcommands
# Capture One session workflow (Synology = queue, TB SSDs = local scratch).
digi park [<session>] # capture station → Synology queue
digi presync # capture station only: background pre-stage of stable raw files (via launchd, see etc/launchd/)
digi queue # list what's parked + who has what checked out
digi checkout [<session>] # pull a queued session to this Mac for editing
digi checkin # push edits back to Synology, release lock
digi complete [<session>] # mark a parked session done (hides it from queue; not an archive)
digi status # what's on this mac, what's checked out elsewhere
digi log [-n 20] # recent park / checkout / checkin / complete events
digi force-unlock <session> # admin: clear a stale lock (logged with reason)Each subcommand lives in bin/digi-<name> and can also be invoked directly.
Docs:
docs/setup-and-training.md— installingdigion a Mac + onboarding a new studentdocs/capture-one-workflow.md— daily cheat sheet for the three main commandsdocs/SOP-capture-one-handoff.md— formal Standard Operating Procedure
bin/ Subcommand executables (digi-backup, digi-rip-dvd, ...)
lib/ Shared shell + Python helpers (logging, config, rsync wrappers)
etc/ Configuration
machines/ Per-host config (paths, role, mount points)
shared/ Settings that apply to every machine
inbox/ Scratch space for unstyled scripts John dumps mid-workflow.
Curated into bin/ + lib/ later.
scripts/ Examples, one-shot maintenance scripts, references
docs/ Runbooks, troubleshooting notes
When you find yourself running an ad-hoc command repeatedly, drop it into
inbox/ with a short note at the top. Don't worry about polish — the goal is
to capture it before it's forgotten. We promote inbox scripts into proper
bin/digi-* commands during cleanup passes.
inbox/
2026-05-15-resize-tiff-batch.sh
2026-05-15-NOTES.md # what was I doing, what worked, what didn't
role: in a machine's config is just a label for digi doctor to print —
it doesn't restrict anything. What a machine can actually do comes from
which paths are filled in (capture_root for park, local_working for
checkout/checkin), and a machine can have both if that's how it's
really used. The table below is what each machine happens to be set up
for today, not a fixed category:
| Role | Hostname (example) | What it does |
|---|---|---|
| capture | mac-studio-versa | Phase One iXG + Capture One, primary ingest — also edits locally (local_working set alongside capture_root) |
| edit | mac-mini-edit-1 | post-processing, batch derivatives |
| edit | mac-mini-edit-2 | post-processing, AV digitization |
| laptop | jmpike-mbp | admin, scripting, editing sessions |
| nas | synology | working storage, transfer hub |
| server | campus-centos | long-term backup, ffmpeg jobs, SC delivery hub |
See etc/machines/README.md for adding a new machine.