Security News
How Threat Actors are Abusing GitHub’s File Upload Feature to Host Malware
GitHub is susceptible to a CDN flaw that allows attackers to host malware on any public repository.
outpipe
Advanced tools
Readme
write output to a file through shell commands
Suppose you have a tool like watchify or factor-bundle that write to multiple files or write to the same file more than once.
If you want to pipe the output of these tools to other programs, such as
minification with the uglify
command, it's very difficult! You might need to
use the tool's API or use a separate command to watch for changes to the output
files. Ick.
You don't get the elegance of something like:
$ browserify main.js | uglifyjs -cm | gzip > bundle.js.gz
Until now! With this library and a hypothetical version of watchify, you could do:
$ watchify main.js -dv -o 'uglifyjs -cm | gzip > bundle.js.gz'
Here's a small watcher program that will just copy input files to a destination, but transforms can be applied along the way with shell pipes and redirects.
var outpipe = require('outpipe');
var gaze = require('gaze');
var fs = require('fs');
var minimist = require('minimist');
var argv = minimist(process.argv.slice(2), {
alias: { o: 'output' }
});
var file = argv._[0];
gaze(file, function (err, w) {
w.on('changed', read);
});
read();
function read () {
var r = fs.createReadStream(file);
r.pipe(outpipe(argv.output));
}
We can run the program with a single output file:
$ node watch.js input/x.js -o output/hmm.js
which just copies x.js
to output/hmm.js
whenever x.js
changes.
We could also run a minification step using the uglify
command:
$ node watch.js input/x.js -o 'uglifyjs -cm > output/wow.js'
or we can just print the size of the minified and gzipped output to stdout:
$ node watch.js input/x.js -o 'uglifyjs -cm | gzip | wc -c'
123
or we could write that size to a file:
$ node watch.js input/x.js -o 'uglifyjs -cm | gzip | wc -c > size.txt'
var outpipe = require('outpipe')
Return a writable stream w
that will pipe output to the command string cmd
.
If cmd
has no operators (|
or >
), it will write to a file.
Otherwise, each command between pipes will be executed and output is written to
a file if >
is given.
opts
can be:
opts.env
- an object mapping environment variables to their values or a
function (key) {}
that returns the values.stdout and stderr are forwarded to process.stdout and process.stderr if unhandled in the command.
With npm do:
npm install outpipe
MIT
FAQs
write output to a file through shell commands
The npm package outpipe receives a total of 457,119 weekly downloads. As such, outpipe popularity was classified as popular.
We found that outpipe demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
GitHub is susceptible to a CDN flaw that allows attackers to host malware on any public repository.
Security News
At Node Congress, Socket CEO Feross Aboukhadijeh uncovers the darker aspects of open source, where applications that rely heavily on third-party dependencies can be exploited in supply chain attacks.
Research
Security News
The Socket Research team found this npm package includes code for collecting sensitive developer information, including your operating system username, Git username, and Git email.