// usage: node env_loc.js hbxCli iosTransporter simsimPath openShare const fs = require('fs') const path = require('path') const os = require('os') const params = process.argv.slice(2) // 默认值。如要覆盖,请在 env_loc.gitomit.sfomit.json 中修改。 const defaultEnv = { hbxCli: os.type() === 'Darwin' && fs.existsSync('/Applications/HBuilderX.app/Contents/MacOS/cli') ? '/Applications/HBuilderX.app/Contents/MacOS/cli' : os.type() === 'Windows_NT' && fs.existsSync('C:/HBuilderX/cli.exe') ? 'C:/HBuilderX/cli.exe' : '', iosTransporter: os.type() === 'Darwin' && fs.existsSync( '/Applications/Transporter.app/Contents/itms/bin/iTMSTransporter' ) ? '/Applications/Transporter.app/Contents/itms/bin/iTMSTransporter' : '', simsimPath: module.paths.some(modulesPath => fs.existsSync(path.join(modulesPath, 'sesame-basic')) ) ? 'sesame-basic' : fs.existsSync('../../../simsim/sesame-basic') ? path.resolve('../../../simsim/sesame-basic') : fs.existsSync(`${os.homedir()}/simsim/sesame-basic`) ? path.resolve(`${os.homedir()}/simsim/sesame-basic`) : '', openShare: fs.existsSync('../../npm') ? path.resolve('../../npm') : fs.existsSync(`${os.homedir()}/openShare`) ? path.resolve(`${os.homedir()}/openShare`) : '' } const localEnv = Object.assign( {}, params.reduce((acc, cur) => { if (defaultEnv[cur]) { acc[cur] = defaultEnv[cur] } else { acc[cur] = '' } return acc }, {}), fs.existsSync('./env_loc.gitomit.sfomit.json') ? require(path.resolve('./env_loc.gitomit.sfomit.json')) : {} ) fs.writeFileSync( path.resolve('./env_loc.gitomit.sfomit.json'), JSON.stringify(localEnv, null, 2), 'utf8' ) console.log(localEnv) module.exports = localEnv