Skip to main content

Module escape

Module escape 

Source
Expand description

Escaping for the three text formats apollo generates from paths it does not control: launchd plists, systemd units, and a generated shell script.

A workspace path is whatever directory the user pointed apollo at, and on Unix a directory name may legally contain <, ", $, a space, or a newline. Rejecting those characters outright is wrong โ€” a macOS path with a space in it is entirely ordinary โ€” so each value is escaped for the format it lands in. Only a newline, which no format can represent inside a value, is refused.

Functionsยง

shell_argument
Quote a value for a POSIX shell.
systemd_argument
Quote a value as one argument in a systemd unit directive.
xml_text
Escape a value for use as XML character data, as in a plist <string>.