Check for presence of folders before continuing eject. Closes #939. (#951)

This commit is contained in:
Alice Rose
2016-10-28 14:54:56 +02:00
committed by Dan Abramov
parent 8a5c50d97a
commit 7ce4b6e0e4

View File

@@ -30,6 +30,25 @@ prompt(
var ownPath = path.join(__dirname, '..');
var appPath = path.join(ownPath, '..', '..');
function verifyAbsent(file) {
if (fs.existsSync(path.join(appPath, file))) {
console.error(
'`' + file + '` already exists in your app folder. We cannot ' +
'continue as you would lose all the changes in that file or directory. ' +
'Please move or delete it (maybe make a copy for backup) and run this ' +
'command again.'
);
process.exit(1);
}
}
var folders = [
'config',
path.join('config', 'jest'),
'scripts'
];
var files = [
path.join('config', 'env.js'),
path.join('config', 'paths.js'),
@@ -44,22 +63,13 @@ prompt(
];
// Ensure that the app folder is clean and we won't override any files
files.forEach(function(file) {
if (fs.existsSync(path.join(appPath, file))) {
console.error(
'`' + file + '` already exists in your app folder. We cannot ' +
'continue as you would lose all the changes in that file or directory. ' +
'Please delete it (maybe make a copy for backup) and run this ' +
'command again.'
);
process.exit(1);
}
});
folders.forEach(verifyAbsent);
files.forEach(verifyAbsent);
// Copy the files over
fs.mkdirSync(path.join(appPath, 'config'));
fs.mkdirSync(path.join(appPath, 'config', 'jest'));
fs.mkdirSync(path.join(appPath, 'scripts'));
folders.forEach(function(folder) {
fs.mkdirSync(path.join(appPath, folder))
});
console.log();
console.log(cyan('Copying files into ' + appPath));