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) })