36 lines
828 B
JavaScript
36 lines
828 B
JavaScript
import chalk from 'chalk';
|
|
import fs from 'fs';
|
|
import path from 'path';
|
|
import { promisify } from 'util';
|
|
import { execa } from 'execa';
|
|
|
|
const exists = promisify(fs.exists);
|
|
|
|
async function initGit(options) {
|
|
const { targetDir } = options;
|
|
const targetPath = path.join(targetDir, '.git');
|
|
|
|
// Check if git is installed
|
|
try {
|
|
await execa('git', ['--version']);
|
|
} catch (err) {
|
|
console.error(
|
|
'%s Git is not installed. Please install git and try again.',
|
|
chalk.red.bold('ERROR')
|
|
);
|
|
process.exit(1);
|
|
}
|
|
|
|
if (!(await exists(targetPath))) {
|
|
try {
|
|
await execa('git', ['init'], { cwd: targetDir });
|
|
} catch (err) {
|
|
console.error('%s Failed to initialize git', chalk.red.bold('ERROR'));
|
|
console.error(err);
|
|
process.exit(1);
|
|
}
|
|
}
|
|
}
|
|
|
|
export default initGit;
|