Skip to main content

Module stale_ref_lock_message

Module stale_ref_lock_message 

Source
Expand description

What the wrapper prints about reference locks, and the quoted command that clears one it will not remove. What: The words the wrapper prints about reference locks: what it removed, what it left and why, and the exact command that clears a lock it will not remove. Why: A lock that is not proven stale must never be removed, so the person is told what was found and given a command that is safe to paste. Path names come from the file system, so the command quotes every byte a shell or a terminal could read as something other than part of the name.

In TS you’d write (pseudocode):

process.stderr.write(outcome.notice()); // "cli-git: left the reference lock ... alone: ...\ncli-git:   rm -- '...'\n"

Functions§

path_list
The paths of a list, for a log line.
shell_quote
A path as a shell word that stands for exactly that path. Plain names are written as they are; names with other printable characters go in single quotes, with each single quote written '\''; names with a control character or a byte that is not UTF-8 use the $'...' form, which shells of the Bash family read byte for byte and which keeps a terminal escape sequence from being printed raw.