wo_scripts/git-ignore-merge.js
2026-01-20 12:37:16 +08:00

42 lines
1.4 KiB
JavaScript

const https = require('https')
const fs = require('fs')
const path = require('path')
console.log('\n::*** Merge remote and local gitignore files to .gitignore')
// 下载远程 .gitignore_global 内容,不保存中间文件
const remoteUrl = 'https://git.tic.cc/npm/sysconfig/raw/branch/main/nixhome/.gitignore_global'
console.log('::--- fetching remote file:', remoteUrl)
https
.get(remoteUrl, (res) => {
if (res.statusCode !== 200) {
console.error(`::--- failed to download: status ${res.statusCode}`)
return
}
let globalContent = ''
res.setEncoding('utf8')
res.on('data', (chunk) => {
globalContent += chunk
})
res.on('end', () => {
const gitignoreLocalPath = path.resolve('./.gitignore.local.txt')
console.log('::--- merging with local file:', gitignoreLocalPath)
const gitignorePath = path.resolve('./.gitignore')
console.log('::--- into final result:', gitignorePath)
// 追加本地文件内容(如果存在)
let localContent = ''
if (fs.existsSync(gitignoreLocalPath)) {
localContent = fs.readFileSync(gitignoreLocalPath, 'utf8')
}
// 合并写入 .gitignore
fs.writeFileSync(gitignorePath, globalContent + '\n' + localContent)
console.log('::--- Merged successfully!')
})
})
.on('error', (err) => {
console.error('::--- download error:', err.message)
})