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