Skip to content

Commit

Permalink
fix: correctly save settings (#58)
Browse files Browse the repository at this point in the history
  • Loading branch information
chill389cc committed Aug 1, 2023
1 parent 9b588d4 commit 3b57edb
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 7 deletions.
10 changes: 6 additions & 4 deletions packages/cli/lib/commands/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@ import chalk from 'chalk'
import fs from 'node:fs/promises'
import getSettings from '../util/getSettings.js'
import getErrorMessage from '../util/errorChecker.js'
import { dirname, resolve } from 'path'
import { dirname } from 'path'
import { fileURLToPath } from 'url'
import { logger } from '../util/logger.js'
import getDirectoriesObj from '../util/getDirectoriesObj.js'

async function config (setting) {
const __dirname = dirname(fileURLToPath(import.meta.url))
const settingsFilePath = getDirectoriesObj().settingsDir
try {
if (setting.includes('=')) {
const settings = setting.split('=')
Expand All @@ -16,7 +18,7 @@ async function config (setting) {
case 'disableErrors':
if (settings[1] === 'true' || settings[1] === 'false') {
settingsObj.disableErrors = settings[1]
await fs.writeFile(resolve(__dirname, './../settings.txt'), JSON.stringify(settingsObj), 'utf8')
await fs.writeFile(settingsFilePath, JSON.stringify(settingsObj), 'utf8')
} else {
console.log(
chalk.red.bold('Invalid input for disableErrors setting. Use either \'tfvm config disableErrors=true\' or \'tfvm config disableErrors=false\'')
Expand All @@ -26,7 +28,7 @@ async function config (setting) {
case 'disableAWSWarnings':
if (settings[1] === 'true' || settings[1] === 'false') {
settingsObj.disableAWSWarnings = settings[1]
await fs.writeFile(resolve(__dirname, './../settings.txt'), JSON.stringify(settingsObj), 'utf8')
await fs.writeFile(settingsFilePath, JSON.stringify(settingsObj), 'utf8')
} else {
console.log(
chalk.red.bold('Invalid input for disableAWSWarnings setting. Use either \'tfvm config disableAWSWarnings=true\' or \'tfvm config disableAWSWarnings=false\'')
Expand All @@ -36,7 +38,7 @@ async function config (setting) {
case 'disableSettingPrompts':
if (settings[1] === 'true' || settings[1] === 'false') {
settingsObj.disableSettingPrompts = settings[1]
await fs.writeFile(resolve(__dirname, './../settings.txt'), JSON.stringify(settingsObj), 'utf8')
await fs.writeFile(settingsFilePath, JSON.stringify(settingsObj), 'utf8')
} else {
console.log(
chalk.red.bold('Invalid input for disableSettingPrompts setting. Use either \'tfvm config disableSettingPrompts=true\' or \'tfvm config disableSettingPrompts=false\'')
Expand Down
5 changes: 4 additions & 1 deletion packages/cli/lib/util/getDirectoriesObj.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import fs from 'node:fs'
import { settingsFileName } from './constants.js'

let directoriesObj

Expand All @@ -12,13 +13,15 @@ function getDirectoriesObj () {
if (!fs.existsSync(tfVersionsDir)) fs.mkdirSync(tfVersionsDir)
if (!fs.existsSync(logsDir)) fs.mkdirSync(logsDir)
const terraformDir = appDataDir.concat('\\terraform')
const settingsDir = tfvmDir.concat(`\\${settingsFileName}`)

directoriesObj = {
appDataDir,
tfvmDir,
logsDir,
tfVersionsDir,
terraformDir
terraformDir,
settingsDir
}
}
return directoriesObj
Expand Down
3 changes: 1 addition & 2 deletions packages/cli/lib/util/getSettings.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import fs from 'node:fs/promises'
import { logger } from './logger.js'
import { settingsFileName } from './constants.js'
import getDirectoriesObj from './getDirectoriesObj.js'

let settings
Expand All @@ -9,7 +8,7 @@ export default async function () {
if (settings) return settings
else {
// store settings in AppData so that they are maintained when switching node versions
const settingsFilePath = `${getDirectoriesObj().tfvmDir}\\${settingsFileName}`
const settingsFilePath = getDirectoriesObj().settingsDir
try {
settings = JSON.parse(await fs.readFile(settingsFilePath, { encoding: 'utf8' }))
logger.trace(settings, 'Settings: ')
Expand Down

0 comments on commit 3b57edb

Please sign in to comment.