UNPKG

2.8 kBJavaScriptView Raw
1
2var ArrayConcat = Array.prototype.concat;
3var fs = require("fs");
4
5function mkdir(path)
6{
7 return wrap(function (callback)
8 {
9 return fs.mkdir(path, callback);
10 });
11}
12module.exports.mkdir = mkdir;
13
14module.exports.cd = process.chdir;
15
16function ls(path)
17{
18 return new Promise(function (resolve, reject)
19 {
20 fs.readdir(path, function (err, result)
21 {
22 if (err)
23 return reject(err);
24
25 console.log(result.join("\n"));
26
27 resolve(result);
28 });
29 });
30}
31module.exports.ls = ls;
32
33function cat(path)
34{
35 return wrap(function (callback)
36 {
37 fs.readFile(path, "utf-8", callback);
38 });
39}
40module.exports.cat = cat;
41
42function wrap(aFunction)
43{
44 return new Promise(function (resolve, reject)
45 {
46 aFunction(function (err, result)
47 {
48 if (err)
49 return reject(err);
50
51 resolve(result);
52 });
53 });
54}
55
56var spawn = require("@runkit/tolmasky/spawn/1.0.0");
57var ArraySlice = Array.prototype.slice;
58var ArrayConcat = Array.prototype.concat;
59
60function yarn()
61{
62
63 return spawn("node", ArrayConcat.call([require.resolve("yarn/bin/yarn.js")], ArraySlice.apply(arguments), "--no-progress"), { displayCommand: "yarn", displayArguments: [].concat(arguments) }));
64}
65module.exports.yarn = yarn;
66
67
68var childProcess = require("child_process");
69
70function spawnAsync(command, args, opts) {
71 if (typeof args === 'undefined') {
72 args = [];
73 }
74 if (typeof opts === 'undefined') {
75 opts = {};
76 }
77 return new Promise(function(resolve, reject){
78 var stdoutString = '';
79 var stderrString = '';
80 //console.log('$ '+command+' '+args.join(' '));
81 var child = childProcess.spawn(command, args, opts);
82
83 child.stdout.on('data', function(data){
84 stdoutString += data.toString();
85 console.log(data.toString());
86 });
87 child.stderr.on('data', function(data){
88 stderrString += data.toString();
89 console.log(data.toString());
90 });
91 child.on('close', function(exitCode) {
92 //console.log('! '+exitCode+' '+command+' '+args.join(' '));
93 var result = {
94 command: command,
95 args: args,
96 opts: opts,
97 code: exitCode,
98 stdout: stdoutString,
99 stderr: stderrString,
100 };
101 if (exitCode === 0 || opts.ignoreExitCode) {
102 if (typeof opts.resolveValue === 'undefined') {
103 resolve(result);
104 } else {
105 resolve(opts.resolveValue);
106 }
107 } else {
108 reject(result);
109 }
110 });
111 });
112};
\No newline at end of file