<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dotemacs/tests/test-system-lib-process-output-or-error.el, branch main</title>
<subtitle>My Emacs configuration
</subtitle>
<id>https://git.cjennings.net/dotemacs/atom?h=main</id>
<link rel='self' href='https://git.cjennings.net/dotemacs/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/'/>
<updated>2026-05-10T19:17:25+00:00</updated>
<entry>
<title>refactor(system-lib): extract cj/process-output-or-error and cj/git-output-or-error from coverage-core</title>
<updated>2026-05-10T19:17:25+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-10T19:17:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=57e558ce13fae77eed07095638a753ba75af55d4'/>
<id>urn:sha1:57e558ce13fae77eed07095638a753ba75af55d4</id>
<content type='text'>
Phase 2.3 of utility-consolidation. `cj/--coverage-git-string' was a generic argv-based runner ("run program, return stdout, raise user-error on non-zero with status+output in the message") trapped inside coverage-core.  Lift the generic shape into `cj/process-output-or-error' and add `cj/git-output-or-error' as a one-line wrapper that supplies "git" as the program.  Both live in system-lib.el.

Future callers I have in mind: reconcile-open-repos shell-style git calls (the high-priority data-safety task), vc-config clipboard cloning, mail integrations that touch git for commit signatures.

Six Normal/Boundary/Error tests cover success/no-args/non-zero-exit for the generic runner, the user-error message content (program name, exit status, trimmed output), and the git wrapper's program argument routing.

Migrate coverage-core's `cj/--coverage-git-merge-base' and `cj/--coverage-git-diff' to call the new git wrapper.  Drop the local `cj/--coverage-git-string' definition.  Add `(require \='system-lib)' to coverage-core.el per the Phase 2 exit criterion.
</content>
</entry>
</feed>
