33 lines
907 B
JavaScript
33 lines
907 B
JavaScript
#!/usr/bin/env node
|
|
|
|
'use strict';
|
|
|
|
const {exec} = require('child-process-promise');
|
|
const {join} = require('path');
|
|
const {tmpdir} = require('os');
|
|
const {logPromise} = require('../utils');
|
|
const theme = require('../theme');
|
|
|
|
const run = async ({commit, cwd, tempDirectory}) => {
|
|
const directory = `react-${commit}`;
|
|
const temp = tmpdir();
|
|
|
|
if (tempDirectory !== join(tmpdir(), directory)) {
|
|
throw Error(`Unexpected temporary directory "${tempDirectory}"`);
|
|
}
|
|
|
|
await exec(`rm -rf ${directory}`, {cwd: temp});
|
|
await exec(`git archive --format=tar --output=${temp}/react.tgz ${commit}`, {
|
|
cwd,
|
|
});
|
|
await exec(`mkdir ${directory}`, {cwd: temp});
|
|
await exec(`tar -xf ./react.tgz -C ./${directory}`, {cwd: temp});
|
|
};
|
|
|
|
module.exports = async params => {
|
|
return logPromise(
|
|
run(params),
|
|
theme`Copying React repo to temporary directory ({path ${params.tempDirectory}})`
|
|
);
|
|
};
|