react/scripts/release/create-next-commands/copy-repo-to-temp-directory.js

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}})`
);
};