Files
11cafe-comfyui-workspace-ma…/scripts/setupGitHooks.js
T
2024-03-12 23:30:48 +08:00

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();