75 lines
2.7 KiB
TypeScript
75 lines
2.7 KiB
TypeScript
|
|
/*//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
Git Pull Setup
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/
|
|
|
|
import { execSync } from 'child_process';
|
|
const prompt = require('prompt-sync')();
|
|
|
|
// Ask user whether to pull from Git
|
|
const pull_remote_repository: string = prompt('Do you want to pull from Git? (yes/no): ');
|
|
|
|
if (pull_remote_repository.toLowerCase() === 'yes' || pull_remote_repository.toLowerCase() === 'y') {
|
|
console.log('Pulling latest changes from Git...');
|
|
try {
|
|
execSync('git fetch', { stdio: 'inherit' }); // Execute git fetch
|
|
execSync('git pull', { stdio: 'inherit', timeout: 5000 }); // Execute git pull with timeout of 5s
|
|
console.log('Pull successful!');
|
|
} catch (err: any) {
|
|
// If there's an error, log it and exit with an error code
|
|
if (err.signal === 'SIGTERM') {
|
|
console.error('Git pull timed out.');
|
|
} else {
|
|
console.error('Error pulling from Git:', err);
|
|
}
|
|
process.exit(1); // Exit with non-zero code to signal failure
|
|
}
|
|
} else {
|
|
console.log('Skipping Git pull.');
|
|
}
|
|
|
|
|
|
/*//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
husky initialization
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/
|
|
|
|
import * as fs from "fs";
|
|
import * as path from "path";
|
|
|
|
const source = path.join(__dirname, "..", ".husky", "pre-commit");
|
|
const destinationDir = path.join(__dirname, "..", ".husky", "_");
|
|
const destination = path.join(destinationDir, "pre-commit");
|
|
console.log('source: ', source);
|
|
console.log('destination: ', destination);
|
|
|
|
// Verify if the source file exists
|
|
if (!fs.existsSync(source)) {
|
|
console.error("Source file does not exist:", source);
|
|
process.exit(1); // Exit with an error code
|
|
}
|
|
|
|
// Ensure the destination directory exists
|
|
if (!fs.existsSync(destinationDir)) {
|
|
fs.mkdirSync(destinationDir, { recursive: true });
|
|
}
|
|
|
|
// Read and write the content manually
|
|
fs.readFile(source, "utf-8", (readErr, data) => {
|
|
if (readErr) {
|
|
console.error("Failed to read source file:", readErr);
|
|
return;
|
|
}
|
|
else {
|
|
// console.log(`sourceData :`, data);
|
|
}
|
|
|
|
fs.writeFile(destination, data.toString(), (writeErr) => {
|
|
if (writeErr) {
|
|
console.error("Failed to write to destination file:", writeErr);
|
|
} else {
|
|
// console.log('Data to be written in destination: ', data.toString());
|
|
console.log("Successfully copied pre-commit hook to", destination);
|
|
}
|
|
});
|
|
});
|