main
js 32 lines 907 Bytes
Raw
1 #!/usr/bin/env node
2
3 'use strict';
4
5 const {exec} = require('child-process-promise');
6 const {join} = require('path');
7 const {tmpdir} = require('os');
8 const {logPromise} = require('../utils');
9 const theme = require('../theme');
10
11 const run = async ({commit, cwd, tempDirectory}) => {
12 const directory = `react-${commit}`;
13 const temp = tmpdir();
14
15 if (tempDirectory !== join(tmpdir(), directory)) {
16 throw Error(`Unexpected temporary directory "${tempDirectory}"`);
17 }
18
19 await exec(`rm -rf ${directory}`, {cwd: temp});
20 await exec(`git archive --format=tar --output=${temp}/react.tgz ${commit}`, {
21 cwd,
22 });
23 await exec(`mkdir ${directory}`, {cwd: temp});
24 await exec(`tar -xf ./react.tgz -C ./${directory}`, {cwd: temp});
25 };
26
27 module.exports = async params => {
28 return logPromise(
29 run(params),
30 theme`Copying React repo to temporary directory ({path ${params.tempDirectory}})`
31 );
32 };