Package Exports
- shell-escape-tag
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (shell-escape-tag) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
shell-escape-tag
An ES6+ template tag which escapes parameters for interpolation into shell commands
INSTALL
$ npm install shell-escape-tagSYNOPSIS
import shell from 'shell-escape-tag'
let filenames = glob('Holiday Snaps/*.jpg')
let title = 'Holiday Snaps'
let command = shell`compress --title ${title} ${filenames}`
console.log(command) // compress --title 'Holiday Snaps' 'Holiday Snaps/Pic 1.jpg' 'Holiday Snaps/Pic 2.jpg'DESCRIPTION
This module exports an ES6+ tagged-template function which escapes (i.e. quotes) its parameters for safe inclusion in shell commands. Parameters can be strings, arrays of strings, or nested arrays of strings, arrays and already-processed parameters.
The exported function also provides two helper functions which respectively escape and preserve their parameters and protect them from further processing.
EXPORTS
shell (default)
Signature: template: String → command: String
let filenames = [ 'foo bar', "baz's quux" ]
let title = 'My Title'
let command = shell`command --title ${title} ${filenames}`
console.log(command) // command --title 'My Title' 'foo bar' 'baz'"'"'s quux'Takes a template literal
and escapes any interpolated parameters. null and undefined values are ignored.
Arrays are flattened and their members are escaped and joined with a space.
All other values are stringified i.e. false is mapped to "false" &c.. Parameters that have been escaped
with shell.escape or preserved with shell.preserve are passed through verbatim.
Functions
escape
Signature: ...any → Object
let params = [ 'foo bar', "baz's quux" ]
let command1 = shell.escape('command', params)
let command2 = shell`command ${params}`
console.log(command1) // command 'foo bar' 'baz'"'"'s quux'
console.log(command2) // command 'foo bar' 'baz'"'"'s quux'Flattens, compacts and escapes any parameters which haven't
already been escaped or preserved, joins the resulting elements
with a space, and wraps the resulting string in an object which
is passed through verbatim when passed as a direct or nested
parameter to shell, shell.escape,
or shell.preserve.
This function provides an alternate interface to the
shell tagged-template function i.e.
shell.escape('foo', bar, 'baz', quux)is equivalent to:
shell`foo ${bar} baz ${quux}`preserve
Aliases: protect, verbatim
Signature: ...any → Object
let params = [ 'foo bar', shell.preserve("baz's quux") ]
let command1 = shell.escape('command', params)
let command2 = shell`command ${params}`
console.log(command1) // command 'foo bar' baz's quux
console.log(command2) // command 'foo bar' baz's quuxFlattens, compacts and preserves any parameters which haven't already
been escaped or preserved, joins the resulting elements with a space,
and wraps the resulting string in an object which is passed through
verbatim when passed as a direct or nested parameter to
shell, shell.escape, or
shell.preserve.
SEE ALSO
VERSION
1.1.0
AUTHOR
COPYRIGHT AND LICENSE
Copyright © 2015-2016 by chocolateboy
shell-escape-tag is free software; you can redistribute it and/or modify it under the terms of the Artistic License 2.0.