@controlla/cli
Version:
Command line interface for rapid Controlla projects development
48 lines (44 loc) • 1.25 kB
JavaScript
const fs = require('fs-extra')
const os = require('os')
const path = require('path')
const xdgConfigPath = file => {
const xdgConfigHome = process.env.XDG_CONFIG_HOME
if (xdgConfigHome) {
const rcDir = path.join(xdgConfigHome, 'controlla')
if (!fs.existsSync(rcDir)) {
fs.ensureDirSync(rcDir, 0o700)
}
return path.join(rcDir, file)
}
}
// migration for 3.0.0-rc.7
// we introduced a change storing .controllarc in AppData, but the benefit isn't
// really obvious so we are reverting it to keep consistency across OSes
const migrateWindowsConfigPath = file => {
if (process.platform !== 'win32') {
return
}
const appData = process.env.APPDATA
if (appData) {
const rcDir = path.join(appData, 'controlla')
const rcFile = path.join(rcDir, file)
const properRcFile = path.join(os.homedir(), file)
if (fs.existsSync(rcFile)) {
try {
if (fs.existsSync(properRcFile)) {
fs.removeSync(rcFile)
} else {
fs.moveSync(rcFile, properRcFile)
}
} catch (e) {}
}
}
}
exports.getRcPath = file => {
migrateWindowsConfigPath(file)
return (
process.env.VUE_CLI_CONFIG_PATH ||
xdgConfigPath(file) ||
path.join(os.homedir(), file)
)
}