42 lines
1.4 KiB
JavaScript
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)
|
|
})
|