build-strap 4.0.0-dev.46 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/README.md +3 -34
  2. package/dist/src/ant.d.ts +19 -0
  3. package/dist/src/ant.js +18 -0
  4. package/dist/src/cert.d.ts +12 -0
  5. package/dist/src/cert.js +91 -0
  6. package/dist/src/clean.d.ts +4 -0
  7. package/dist/src/clean.js +11 -0
  8. package/dist/src/copy.d.ts +7 -0
  9. package/dist/src/copy.js +53 -0
  10. package/dist/src/cp.d.ts +17 -0
  11. package/dist/src/cp.js +88 -0
  12. package/dist/src/docker.container.d.ts +73 -0
  13. package/dist/src/docker.container.js +247 -0
  14. package/dist/src/docker.d.ts +68 -0
  15. package/dist/src/docker.js +188 -0
  16. package/dist/src/docker.network.d.ts +42 -0
  17. package/dist/src/docker.network.js +85 -0
  18. package/dist/src/docker.volume.d.ts +26 -0
  19. package/dist/src/docker.volume.js +62 -0
  20. package/dist/src/dockerCleanup.d.ts +38 -0
  21. package/dist/src/dockerCleanup.js +77 -0
  22. package/dist/src/dockerCompose.d.ts +154 -0
  23. package/dist/src/dockerCompose.js +439 -0
  24. package/dist/src/fs.d.ts +5 -0
  25. package/dist/src/fs.js +38 -0
  26. package/dist/src/git.d.ts +9 -0
  27. package/dist/src/git.js +24 -0
  28. package/dist/src/index.d.ts +20 -0
  29. package/dist/src/index.js +20 -0
  30. package/dist/src/maps.d.ts +33 -0
  31. package/dist/src/maps.js +41 -0
  32. package/dist/src/npm.d.ts +35 -0
  33. package/dist/src/npm.js +104 -0
  34. package/dist/src/pkg.d.ts +33 -0
  35. package/dist/src/pkg.js +33 -0
  36. package/dist/src/publish.d.ts +27 -0
  37. package/dist/src/publish.js +57 -0
  38. package/dist/src/run.d.ts +13 -0
  39. package/dist/src/run.js +44 -0
  40. package/dist/src/tgz.d.ts +13 -0
  41. package/dist/src/tgz.js +67 -0
  42. package/dist/src/version.d.ts +34 -0
  43. package/dist/src/version.js +101 -0
  44. package/dist/src/yarn.d.ts +26 -0
  45. package/dist/src/yarn.js +75 -0
  46. package/package.json +74 -20
  47. package/ant.js +0 -43
  48. package/ant.js.flow +0 -42
  49. package/artifactory.js +0 -617
  50. package/artifactory.js.flow +0 -616
  51. package/cert.conf +0 -20
  52. package/cert.js +0 -153
  53. package/cert.js.flow +0 -152
  54. package/clean.js +0 -20
  55. package/clean.js.flow +0 -19
  56. package/copy.js +0 -80
  57. package/copy.js.flow +0 -79
  58. package/cp.js +0 -173
  59. package/cp.js.flow +0 -172
  60. package/docker.container.js +0 -390
  61. package/docker.container.js.flow +0 -389
  62. package/docker.js +0 -365
  63. package/docker.js.flow +0 -364
  64. package/docker.network.js +0 -160
  65. package/docker.network.js.flow +0 -159
  66. package/docker.volume.js +0 -136
  67. package/docker.volume.js.flow +0 -136
  68. package/dockerCleanup.js +0 -152
  69. package/dockerCleanup.js.flow +0 -151
  70. package/dockerCompose.js +0 -766
  71. package/dockerCompose.js.flow +0 -765
  72. package/flow.js +0 -21
  73. package/flow.js.flow +0 -20
  74. package/fs.js +0 -95
  75. package/fs.js.flow +0 -96
  76. package/git.js +0 -35
  77. package/git.js.flow +0 -34
  78. package/hg.js +0 -35
  79. package/hg.js.flow +0 -34
  80. package/index.js +0 -27
  81. package/index.js.flow +0 -26
  82. package/inline-resources.js +0 -158
  83. package/inline-resources.js.flow +0 -157
  84. package/maps.js +0 -112
  85. package/maps.js.flow +0 -111
  86. package/npm.js +0 -145
  87. package/npm.js.flow +0 -144
  88. package/pkg.js +0 -81
  89. package/pkg.js.flow +0 -80
  90. package/publish.js +0 -145
  91. package/publish.js.flow +0 -144
  92. package/run.js +0 -90
  93. package/run.js.flow +0 -89
  94. package/src/ant.js +0 -42
  95. package/src/artifactory.js +0 -616
  96. package/src/cert.conf +0 -20
  97. package/src/cert.js +0 -152
  98. package/src/clean.js +0 -19
  99. package/src/copy.js +0 -79
  100. package/src/cp.js +0 -172
  101. package/src/docker.container.js +0 -389
  102. package/src/docker.js +0 -364
  103. package/src/docker.network.js +0 -159
  104. package/src/docker.volume.js +0 -136
  105. package/src/dockerCleanup.js +0 -151
  106. package/src/dockerCompose.js +0 -765
  107. package/src/flow.js +0 -20
  108. package/src/fs.js +0 -96
  109. package/src/git.js +0 -34
  110. package/src/hg.js +0 -34
  111. package/src/index.js +0 -26
  112. package/src/inline-resources.js +0 -157
  113. package/src/maps.js +0 -111
  114. package/src/npm.js +0 -144
  115. package/src/pkg.js +0 -80
  116. package/src/publish.js +0 -144
  117. package/src/run.js +0 -89
  118. package/src/test.js +0 -55
  119. package/src/tgz.js +0 -101
  120. package/src/version.js +0 -142
  121. package/src/yarn.js +0 -123
  122. package/test.js +0 -56
  123. package/test.js.flow +0 -55
  124. package/tgz.js +0 -102
  125. package/tgz.js.flow +0 -101
  126. package/version.js +0 -143
  127. package/version.js.flow +0 -142
  128. package/yarn.js +0 -124
  129. package/yarn.js.flow +0 -123
package/cp.js DELETED
@@ -1,173 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.onKillSignal = exports.exec = void 0;exports.spawn = spawn;exports.spawnAdv = spawnAdv;
2
- var _child_process = _interopRequireDefault(require("child_process"));
3
- var _crossSpawn = _interopRequireDefault(require("cross-spawn"));
4
- var _run = require("./run");function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
-
13
-
14
-
15
-
16
-
17
-
18
-
19
-
20
-
21
-
22
-
23
-
24
-
25
-
26
-
27
-
28
-
29
-
30
-
31
-
32
-
33
-
34
- async function spawnAdv(
35
- command,
36
- args,
37
- opts)
38
- {
39
- const {
40
- pipeOutput = false,
41
- captureOutput = false,
42
- rejectOnErrorCode = false,
43
- ...options } =
44
- opts || {};
45
-
46
- return new Promise((resolve, reject) => {
47
- try {
48
- const toStr = () => `${command}${args ? ` ${args.join(' ')}` : ''}`;
49
- const p = (0, _crossSpawn.default)(command, args, {
50
- ...options,
51
- // $FlowFixMe
52
- ...(pipeOutput && !captureOutput && !(options && options.stdio) ?
53
- { stdio: 'inherit' } :
54
- {}) });
55
-
56
-
57
- let output = '';
58
- let stdout = '';
59
- let stderr = '';
60
- if (captureOutput) {
61
- if (p.stdout) {
62
- if (pipeOutput) {
63
- p.stdout.pipe(process.stdout);
64
- }
65
- p.stdout.on('data', (d) => {
66
- const str = d.toString();
67
- stdout += str;
68
- output += str;
69
- });
70
- } else {
71
- (0, _run.buildLog)(`Warning: cannot capture stdout for \`${toStr()}\``);
72
- }
73
- if (p.stderr) {
74
- if (pipeOutput) {
75
- p.stderr.pipe(process.stderr);
76
- }
77
- p.stderr.on('data', (d) => {
78
- const str = d.toString();
79
- stderr += str;
80
- output += str;
81
- });
82
- } else {
83
- (0, _run.buildLog)(`Warning: cannot capture stderr for \`${toStr()}\``);
84
- }
85
- }
86
-
87
- let exitHandled = false;
88
- const handleExit = (code, signal) => {
89
- if (!exitHandled) {
90
- if (rejectOnErrorCode && code) {
91
- reject(new Error(`${toStr()} => ${code} (error)`));
92
- } else {
93
- resolve({
94
- output,
95
- stdout,
96
- stderr,
97
- code,
98
- signal });
99
-
100
- }
101
- exitHandled = true;
102
- }
103
- };
104
-
105
- p.on('close', handleExit);
106
-
107
- p.on('exit', handleExit);
108
-
109
- // only fires if we failed to spawn
110
- p.on('error', (err) => {
111
- // Here we have a workaround that reverses a "feature" of cross-spawn on Windows. See:
112
- // https://jira.mmodal.com/browse/BTN-8
113
- // https://github.com/moxystudio/node-cross-spawn/blob/master/lib/enoent.js#L23
114
- // https://github.com/moxystudio/node-cross-spawn/issues/104
115
- if (
116
- process.platform === 'win32' &&
117
- err.code === 'ENOENT' &&
118
- err.errno === 'ENOENT')
119
- {
120
- handleExit(1, 'ENOENT');
121
- } else {
122
- reject(err);
123
- }
124
- });
125
- } catch (err) {
126
- reject(err);
127
- }
128
- });
129
- }
130
-
131
- // older, simpler interface that just returns a string
132
- async function spawn(
133
- command,
134
- args,
135
- opts)
136
- {
137
- return spawnAdv(command, args, { rejectOnErrorCode: true, ...opts }).then(
138
- (r) => r.output);
139
-
140
- }
141
-
142
-
143
-
144
-
145
-
146
-
147
-
148
-
149
-
150
-
151
-
152
-
153
-
154
-
155
- const exec = async (
156
- command,
157
- options) =>
158
-
159
- new Promise((resolve, reject) => {
160
- _child_process.default.exec(command, options, (err, stdout, stderr) => {
161
- if (err) {
162
- reject(err);
163
- return;
164
- }
165
-
166
- resolve({ stdout, stderr });
167
- });
168
- });exports.exec = exec;
169
-
170
- const onKillSignal = (cbFn) => {
171
- ['SIGINT', 'SIGTERM'].forEach((sig) => process.on(sig, cbFn));
172
- };exports.onKillSignal = onKillSignal;
173
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jcC5qcyJdLCJuYW1lcyI6WyJzcGF3bkFkdiIsImNvbW1hbmQiLCJhcmdzIiwib3B0cyIsInBpcGVPdXRwdXQiLCJjYXB0dXJlT3V0cHV0IiwicmVqZWN0T25FcnJvckNvZGUiLCJvcHRpb25zIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJ0b1N0ciIsImpvaW4iLCJwIiwic3RkaW8iLCJvdXRwdXQiLCJzdGRvdXQiLCJzdGRlcnIiLCJwaXBlIiwicHJvY2VzcyIsIm9uIiwiZCIsInN0ciIsInRvU3RyaW5nIiwiZXhpdEhhbmRsZWQiLCJoYW5kbGVFeGl0IiwiY29kZSIsInNpZ25hbCIsIkVycm9yIiwiZXJyIiwicGxhdGZvcm0iLCJlcnJubyIsInNwYXduIiwidGhlbiIsInIiLCJleGVjIiwiY3AiLCJvbktpbGxTaWduYWwiLCJjYkZuIiwiZm9yRWFjaCIsInNpZyJdLCJtYXBwaW5ncyI6IjtBQUNBO0FBQ0E7QUFDQSw0Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBOEJPLGVBQWVBLFFBQWY7QUFDTEMsT0FESztBQUVMQyxJQUZLO0FBR0xDLElBSEs7QUFJaUI7QUFDdEIsUUFBTTtBQUNKQyxJQUFBQSxVQUFVLEdBQUcsS0FEVDtBQUVKQyxJQUFBQSxhQUFhLEdBQUcsS0FGWjtBQUdKQyxJQUFBQSxpQkFBaUIsR0FBRyxLQUhoQjtBQUlKLE9BQUdDLE9BSkM7QUFLRkosRUFBQUEsSUFBSSxJQUFJLEVBTFo7O0FBT0EsU0FBTyxJQUFJSyxPQUFKLENBQVksQ0FBQ0MsT0FBRCxFQUFVQyxNQUFWLEtBQXFCO0FBQ3RDLFFBQUk7QUFDRixZQUFNQyxLQUFLLEdBQUcsTUFBTyxHQUFFVixPQUFRLEdBQUVDLElBQUksR0FBSSxJQUFHQSxJQUFJLENBQUNVLElBQUwsQ0FBVSxHQUFWLENBQWUsRUFBdEIsR0FBMEIsRUFBRyxFQUFsRTtBQUNBLFlBQU1DLENBQUMsR0FBRyx5QkFBV1osT0FBWCxFQUFvQkMsSUFBcEIsRUFBMEI7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X3Byb2Nlc3MnO1xuaW1wb3J0IGNyb3NzU3Bhd24gZnJvbSAnY3Jvc3Mtc3Bhd24nO1xuaW1wb3J0IHsgYnVpbGRMb2cgfSBmcm9tICcuL3J1bic7XG5cbmV4cG9ydCB0eXBlIE5hdGl2ZVNwYXduT3B0aW9ucyA9IHt8XG4gIGN3ZD86IHN0cmluZyxcbiAgZW52PzogT2JqZWN0LFxuICBhcmd2MD86IHN0cmluZyxcbiAgc3RkaW8/OiBzdHJpbmcgfCBBcnJheTxhbnk+LFxuICBkZXRhY2hlZD86IGJvb2xlYW4sXG4gIHVpZD86IG51bWJlcixcbiAgZ2lkPzogbnVtYmVyLFxuICBzaGVsbD86IGJvb2xlYW4gfCBzdHJpbmcsXG4gIHdpbmRvd3NWZXJiYXRpbUFyZ3VtZW50cz86IGJvb2xlYW4sXG4gIHdpbmRvd3NIaWRlPzogYm9vbGVhbixcbnx9O1xuXG5leHBvcnQgdHlwZSBTcGF3bk9wdGlvbnMgPSB7fFxuICAuLi5OYXRpdmVTcGF3bk9wdGlvbnMsXG4gIHBpcGVPdXRwdXQ/OiBib29sZWFuLFxuICBjYXB0dXJlT3V0cHV0PzogYm9vbGVhbixcbiAgcmVqZWN0T25FcnJvckNvZGU/OiBib29sZWFuLFxufH07XG5cbmV4cG9ydCB0eXBlIFNwYXduUmVzdWx0ID0ge3xcbiAgb3V0cHV0OiBzdHJpbmcsXG4gIHN0ZG91dDogc3RyaW5nLFxuICBzdGRlcnI6IHN0cmluZyxcbiAgY29kZTogbnVtYmVyLFxuICBzaWduYWw6IHN0cmluZyxcbnx9O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc3Bhd25BZHYoXG4gIGNvbW1hbmQ6IHN0cmluZyxcbiAgYXJncz86IHN0cmluZ1tdLFxuICBvcHRzPzogP1NwYXduT3B0aW9ucyxcbik6IFByb21pc2U8U3Bhd25SZXN1bHQ+IHtcbiAgY29uc3Qge1xuICAgIHBpcGVPdXRwdXQgPSBmYWxzZSxcbiAgICBjYXB0dXJlT3V0cHV0ID0gZmFsc2UsXG4gICAgcmVqZWN0T25FcnJvckNvZGUgPSBmYWxzZSxcbiAgICAuLi5vcHRpb25zXG4gIH0gPSBvcHRzIHx8IHt9O1xuXG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHRvU3RyID0gKCkgPT4gYCR7Y29tbWFuZH0ke2FyZ3MgPyBgICR7YXJncy5qb2luKCcgJyl9YCA6ICcnfWA7XG4gICAgICBjb25zdCBwID0gY3Jvc3NTcGF3bihjb21tYW5kLCBhcmdzLCB7XG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIC8vICRGbG93Rml4TWVcbiAgICAgICAgLi4uKHBpcGVPdXRwdXQgJiYgIWNhcHR1cmVPdXRwdXQgJiYgIShvcHRpb25zICYmIG9wdGlvbnMuc3RkaW8pXG4gICAgICAgICAgPyB7IHN0ZGlvOiAnaW5oZXJpdCcgfVxuICAgICAgICAgIDoge30pLFxuICAgICAgfSk7XG5cbiAgICAgIGxldCBvdXRwdXQgPSAnJztcbiAgICAgIGxldCBzdGRvdXQgPSAnJztcbiAgICAgIGxldCBzdGRlcnIgPSAnJztcbiAgICAgIGlmIChjYXB0dXJlT3V0cHV0KSB7XG4gICAgICAgIGlmIChwLnN0ZG91dCkge1xuICAgICAgICAgIGlmIChwaXBlT3V0cHV0KSB7XG4gICAgICAgICAgICBwLnN0ZG91dC5waXBlKHByb2Nlc3Muc3Rkb3V0KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcC5zdGRvdXQub24oJ2RhdGEnLCAoZCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3RyID0gZC50b1N0cmluZygpO1xuICAgICAgICAgICAgc3Rkb3V0ICs9IHN0cjtcbiAgICAgICAgICAgIG91dHB1dCArPSBzdHI7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYnVpbGRMb2coYFdhcm5pbmc6IGNhbm5vdCBjYXB0dXJlIHN0ZG91dCBmb3IgXFxgJHt0b1N0cigpfVxcYGApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwLnN0ZGVycikge1xuICAgICAgICAgIGlmIChwaXBlT3V0cHV0KSB7XG4gICAgICAgICAgICBwLnN0ZGVyci5waXBlKHByb2Nlc3Muc3RkZXJyKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcC5zdGRlcnIub24oJ2RhdGEnLCAoZCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3RyID0gZC50b1N0cmluZygpO1xuICAgICAgICAgICAgc3RkZXJyICs9IHN0cjtcbiAgICAgICAgICAgIG91dHB1dCArPSBzdHI7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYnVpbGRMb2coYFdhcm5pbmc6IGNhbm5vdCBjYXB0dXJlIHN0ZGVyciBmb3IgXFxgJHt0b1N0cigpfVxcYGApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGxldCBleGl0SGFuZGxlZCA9IGZhbHNlO1xuICAgICAgY29uc3QgaGFuZGxlRXhpdCA9IChjb2RlLCBzaWduYWwpID0+IHtcbiAgICAgICAgaWYgKCFleGl0SGFuZGxlZCkge1xuICAgICAgICAgIGlmIChyZWplY3RPbkVycm9yQ29kZSAmJiBjb2RlKSB7XG4gICAgICAgICAgICByZWplY3QobmV3IEVycm9yKGAke3RvU3RyKCl9ID0+ICR7Y29kZX0gKGVycm9yKWApKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgICAgIG91dHB1dCxcbiAgICAgICAgICAgICAgc3Rkb3V0LFxuICAgICAgICAgICAgICBzdGRlcnIsXG4gICAgICAgICAgICAgIGNvZGUsXG4gICAgICAgICAgICAgIHNpZ25hbCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBleGl0SGFuZGxlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIHAub24oJ2Nsb3NlJywgaGFuZGxlRXhpdCk7XG5cbiAgICAgIHAub24oJ2V4aXQnLCBoYW5kbGVFeGl0KTtcblxuICAgICAgLy8gb25seSBmaXJlcyBpZiB3ZSBmYWlsZWQgdG8gc3Bhd25cbiAgICAgIHAub24oJ2Vycm9yJywgKGVycikgPT4ge1xuICAgICAgICAvLyBIZXJlIHdlIGhhdmUgYSB3b3JrYXJvdW5kIHRoYXQgcmV2ZXJzZXMgYSBcImZlYXR1cmVcIiBvZiBjcm9zcy1zcGF3biBvbiBXaW5kb3dzLiBTZWU6XG4gICAgICAgIC8vIGh0dHBzOi8vamlyYS5tbW9kYWwuY29tL2Jyb3dzZS9CVE4tOFxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbW94eXN0dWRpby9ub2RlLWNyb3NzLXNwYXduL2Jsb2IvbWFzdGVyL2xpYi9lbm9lbnQuanMjTDIzXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tb3h5c3R1ZGlvL25vZGUtY3Jvc3Mtc3Bhd24vaXNzdWVzLzEwNFxuICAgICAgICBpZiAoXG4gICAgICAgICAgcHJvY2Vzcy5wbGF0Zm9ybSA9PT0gJ3dpbjMyJyAmJlxuICAgICAgICAgIGVyci5jb2RlID09PSAnRU5PRU5UJyAmJlxuICAgICAgICAgIGVyci5lcnJubyA9PT0gJ0VOT0VOVCdcbiAgICAgICAgKSB7XG4gICAgICAgICAgaGFuZGxlRXhpdCgxLCAnRU5PRU5UJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgcmVqZWN0KGVycik7XG4gICAgfVxuICB9KTtcbn1cblxuLy8gb2xkZXIsIHNpbXBsZXIgaW50ZXJmYWNlIHRoYXQganVzdCByZXR1cm5zIGEgc3RyaW5nXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc3Bhd24oXG4gIGNvbW1hbmQ6IHN0cmluZyxcbiAgYXJncz86IHN0cmluZ1tdLFxuICBvcHRzPzogP1NwYXduT3B0aW9ucyxcbik6IFByb21pc2U8c3RyaW5nPiB7XG4gIHJldHVybiBzcGF3bkFkdihjb21tYW5kLCBhcmdzLCB7IHJlamVjdE9uRXJyb3JDb2RlOiB0cnVlLCAuLi5vcHRzIH0pLnRoZW4oXG4gICAgKHIpID0+IHIub3V0cHV0LFxuICApO1xufVxuXG5leHBvcnQgdHlwZSBFeGVjT3B0aW9ucyA9IHt8XG4gIGN3ZD86IHN0cmluZyxcbiAgZW52PzogT2JqZWN0LFxuICBlbmNvZGluZz86IHN0cmluZyxcbiAgc2hlbGw/OiBzdHJpbmcsXG4gIHRpbWVvdXQ/OiBudW1iZXIsXG4gIG1heEJ1ZmZlcj86IG51bWJlcixcbiAga2lsbFNpZ25hbD86IHN0cmluZyB8IG51bWJlcixcbiAgdWlkPzogbnVtYmVyLFxuICBnaWQ/OiBudW1iZXIsXG4gIHdpbmRvd3NIaWRlPzogYm9vbGVhbixcbnx9O1xuXG5leHBvcnQgY29uc3QgZXhlYyA9IGFzeW5jIChcbiAgY29tbWFuZDogc3RyaW5nLFxuICBvcHRpb25zPzogRXhlY09wdGlvbnMsXG4pOiBQcm9taXNlPHsgc3Rkb3V0OiBzdHJpbmcgfCBCdWZmZXIsIHN0ZGVycjogc3RyaW5nIHwgQnVmZmVyIH0+ID0+XG4gIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjcC5leGVjKGNvbW1hbmQsIG9wdGlvbnMsIChlcnIsIHN0ZG91dCwgc3RkZXJyKSA9PiB7XG4gICAgICBpZiAoZXJyKSB7XG4gICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHJlc29sdmUoeyBzdGRvdXQsIHN0ZGVyciB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbmV4cG9ydCBjb25zdCBvbktpbGxTaWduYWwgPSAoY2JGbjogKCkgPT4gYW55KSA9PiB7XG4gIFsnU0lHSU5UJywgJ1NJR1RFUk0nXS5mb3JFYWNoKChzaWcpID0+IHByb2Nlc3Mub24oc2lnLCBjYkZuKSk7XG59O1xuIl19
package/cp.js.flow DELETED
@@ -1,172 +0,0 @@
1
- // @flow
2
- import cp from 'child_process';
3
- import crossSpawn from 'cross-spawn';
4
- import { buildLog } from './run';
5
-
6
- export type NativeSpawnOptions = {|
7
- cwd?: string,
8
- env?: Object,
9
- argv0?: string,
10
- stdio?: string | Array<any>,
11
- detached?: boolean,
12
- uid?: number,
13
- gid?: number,
14
- shell?: boolean | string,
15
- windowsVerbatimArguments?: boolean,
16
- windowsHide?: boolean,
17
- |};
18
-
19
- export type SpawnOptions = {|
20
- ...NativeSpawnOptions,
21
- pipeOutput?: boolean,
22
- captureOutput?: boolean,
23
- rejectOnErrorCode?: boolean,
24
- |};
25
-
26
- export type SpawnResult = {|
27
- output: string,
28
- stdout: string,
29
- stderr: string,
30
- code: number,
31
- signal: string,
32
- |};
33
-
34
- export async function spawnAdv(
35
- command: string,
36
- args?: string[],
37
- opts?: ?SpawnOptions,
38
- ): Promise<SpawnResult> {
39
- const {
40
- pipeOutput = false,
41
- captureOutput = false,
42
- rejectOnErrorCode = false,
43
- ...options
44
- } = opts || {};
45
-
46
- return new Promise((resolve, reject) => {
47
- try {
48
- const toStr = () => `${command}${args ? ` ${args.join(' ')}` : ''}`;
49
- const p = crossSpawn(command, args, {
50
- ...options,
51
- // $FlowFixMe
52
- ...(pipeOutput && !captureOutput && !(options && options.stdio)
53
- ? { stdio: 'inherit' }
54
- : {}),
55
- });
56
-
57
- let output = '';
58
- let stdout = '';
59
- let stderr = '';
60
- if (captureOutput) {
61
- if (p.stdout) {
62
- if (pipeOutput) {
63
- p.stdout.pipe(process.stdout);
64
- }
65
- p.stdout.on('data', (d) => {
66
- const str = d.toString();
67
- stdout += str;
68
- output += str;
69
- });
70
- } else {
71
- buildLog(`Warning: cannot capture stdout for \`${toStr()}\``);
72
- }
73
- if (p.stderr) {
74
- if (pipeOutput) {
75
- p.stderr.pipe(process.stderr);
76
- }
77
- p.stderr.on('data', (d) => {
78
- const str = d.toString();
79
- stderr += str;
80
- output += str;
81
- });
82
- } else {
83
- buildLog(`Warning: cannot capture stderr for \`${toStr()}\``);
84
- }
85
- }
86
-
87
- let exitHandled = false;
88
- const handleExit = (code, signal) => {
89
- if (!exitHandled) {
90
- if (rejectOnErrorCode && code) {
91
- reject(new Error(`${toStr()} => ${code} (error)`));
92
- } else {
93
- resolve({
94
- output,
95
- stdout,
96
- stderr,
97
- code,
98
- signal,
99
- });
100
- }
101
- exitHandled = true;
102
- }
103
- };
104
-
105
- p.on('close', handleExit);
106
-
107
- p.on('exit', handleExit);
108
-
109
- // only fires if we failed to spawn
110
- p.on('error', (err) => {
111
- // Here we have a workaround that reverses a "feature" of cross-spawn on Windows. See:
112
- // https://jira.mmodal.com/browse/BTN-8
113
- // https://github.com/moxystudio/node-cross-spawn/blob/master/lib/enoent.js#L23
114
- // https://github.com/moxystudio/node-cross-spawn/issues/104
115
- if (
116
- process.platform === 'win32' &&
117
- err.code === 'ENOENT' &&
118
- err.errno === 'ENOENT'
119
- ) {
120
- handleExit(1, 'ENOENT');
121
- } else {
122
- reject(err);
123
- }
124
- });
125
- } catch (err) {
126
- reject(err);
127
- }
128
- });
129
- }
130
-
131
- // older, simpler interface that just returns a string
132
- export async function spawn(
133
- command: string,
134
- args?: string[],
135
- opts?: ?SpawnOptions,
136
- ): Promise<string> {
137
- return spawnAdv(command, args, { rejectOnErrorCode: true, ...opts }).then(
138
- (r) => r.output,
139
- );
140
- }
141
-
142
- export type ExecOptions = {|
143
- cwd?: string,
144
- env?: Object,
145
- encoding?: string,
146
- shell?: string,
147
- timeout?: number,
148
- maxBuffer?: number,
149
- killSignal?: string | number,
150
- uid?: number,
151
- gid?: number,
152
- windowsHide?: boolean,
153
- |};
154
-
155
- export const exec = async (
156
- command: string,
157
- options?: ExecOptions,
158
- ): Promise<{ stdout: string | Buffer, stderr: string | Buffer }> =>
159
- new Promise((resolve, reject) => {
160
- cp.exec(command, options, (err, stdout, stderr) => {
161
- if (err) {
162
- reject(err);
163
- return;
164
- }
165
-
166
- resolve({ stdout, stderr });
167
- });
168
- });
169
-
170
- export const onKillSignal = (cbFn: () => any) => {
171
- ['SIGINT', 'SIGTERM'].forEach((sig) => process.on(sig, cbFn));
172
- };