58 lines
1.6 KiB
JavaScript
58 lines
1.6 KiB
JavaScript
const fs = require('fs');
|
|
const { exec } = require('child_process');
|
|
const path = require('path');
|
|
|
|
const files = [
|
|
{ path: '../.git/info/exclude.dist', content: '/dist' },
|
|
{
|
|
path: '../.git/hooks/post-checkout',
|
|
content: `
|
|
#!/bin/sh
|
|
|
|
# Get the current branch name
|
|
BRANCH_NAME=$(git rev-parse --symbolic-full-name --abbrev-ref HEAD)
|
|
|
|
# Remove previously set exclude files
|
|
rm -f ../.git/info/exclude
|
|
|
|
# When not in the beta/main branch, add additional files that need to be ignored
|
|
if [ "$BRANCH_NAME" != "beta" ] && [ "$BRANCH_NAME" != "main" ]; then
|
|
cp .git/info/exclude.dist .git/info/exclude
|
|
# elif [ "$BRANCH_NAME" = "xxx" ]; then
|
|
# cp .git/info/exclude.xxx .git/info/exclude
|
|
fi`,
|
|
},
|
|
];
|
|
|
|
function createFile(filePath, content) {
|
|
fs.writeFile(filePath, content, (err) => {
|
|
if (err) {
|
|
console.error(`An error occurred while creating file ${filePath}:`, err);
|
|
}
|
|
});
|
|
}
|
|
|
|
function executeCommand(command, workingDirectory = '../') {
|
|
exec(command, { cwd: path.resolve(__dirname, workingDirectory) }, (error, stdout, stderr) => {
|
|
if (error) {
|
|
console.error(`An error occurred while executing command "${command}":`, error);
|
|
return;
|
|
}
|
|
if (stderr) {
|
|
console.error(`Command error "${stderr}"`);
|
|
return;
|
|
}
|
|
});
|
|
}
|
|
|
|
function main() {
|
|
files.forEach((file) => {
|
|
createFile(file.path, file.content);
|
|
});
|
|
executeCommand('git config advice.ignoredHook false');
|
|
executeCommand('chmod +x .git/hooks/post-checkout');
|
|
console.log('Custom git hooks installation completed')
|
|
}
|
|
|
|
main();
|