fixed global settings holefully

This commit is contained in:
Djkato 2022-05-05 00:45:37 +02:00
parent 7e58b4e703
commit 24a1543c2a
5 changed files with 50 additions and 44 deletions

View file

@ -1,18 +1,11 @@
#!/usr/bin/env node #!/usr/bin/env node
import fs from 'fs' const fs = require('fs')
import { Encoder } from "../lib/encoder.js" const path = require("path")
import { UI } from "../lib/ui.js" const termkit = require("terminal-kit")
import termkit from "terminal-kit" const { Encoder } = require("../lib/encoder.js")
import { SettingsManager } from "../lib/settingsManager.js" const { UI } = require("../lib/ui.js")
import path from "path" const { SettingsManager } = require("../lib/settingsManager.js")
//get settings
let settings = new SettingsManager()
getSettings()
async function getSettings() {
await settings.start()
}
let term = termkit.terminal let term = termkit.terminal
const ui = new UI(settings.settings, settings.currentSetting)
/** /**
* TODO : FIND A WAY TO COMPILE THIS:.. * TODO : FIND A WAY TO COMPILE THIS:..
@ -22,7 +15,7 @@ const ui = new UI(settings.settings, settings.currentSetting)
const inputList = process.argv.slice(2) const inputList = process.argv.slice(2)
//if launched without params //if launched without params
if (!inputList[0]) { if (!inputList[0]) {
ui.startMenu() //stops program here main(true)
} }
//Parse file inputs (n Drag n drop or arguments) //Parse file inputs (n Drag n drop or arguments)
@ -63,7 +56,13 @@ else {
} }
main() main()
async function main() { async function main(menu = false) {
//get settings
let settings = new SettingsManager()
await settings.start(__dirname)
const ui = new UI(settings.settings, settings.currentSetting, settings.settingsFile)
if (menu) savesettings = await ui.startMenu()
//file checks //file checks
let isListEncodable = true let isListEncodable = true

View file

@ -1,6 +1,6 @@
import { exec } from 'child_process' const { exec } = require('child_process')
export class Encoder { class Encoder {
currentSetting currentSetting
settings settings
encoder encoder
@ -135,4 +135,6 @@ export class Encoder {
} }
} }
} }
module.exports = { Encoder }

View file

@ -1,10 +1,11 @@
import fs from "fs" const fs = require("fs")
import path from "path" const path = require("path")
export class SettingsManager {
class SettingsManager {
settings settings
currentSetting currentSetting
settingsFile = __dirname
constructor() { constructor() {
} }
@ -15,18 +16,18 @@ export class SettingsManager {
async #init() { async #init() {
let settings let settings
settings = await this.#getSettings().catch(async (err) => { try {
settings = undefined settings = await this.#getSettings()
}) } catch (error) {
if (!settings) settings = await this.#makeNewSettingsFile() console.log(error)
settings = await this.#makeNewSettingsFile()
}
this.settings = JSON.parse(settings.toString()) this.settings = JSON.parse(settings.toString())
this.currentSetting = this.settings.presets[this.settings.currentSetting] this.currentSetting = this.settings.presets[this.settings.currentSetting]
} }
async #getSettings() { async #getSettings() {
const dir = __dirname
console.log(dir)
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
const getSettings = fs.readFile(path.resolve(dir, "settings.json"), (err, data) => { const getSettings = fs.readFile(path.resolve(this.settingsFile, "settings.json"), (err, data) => {
if (err) reject(err) if (err) reject(err)
resolve(data) resolve(data)
}) })
@ -175,9 +176,12 @@ export class SettingsManager {
} }
` `
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
fs.writeFile("settings.json", settings, () => { fs.writeFile(path.resolve(this.settingsFile, "settings.json"), settings, (err) => {
if (err) throw err
resolve(settings) resolve(settings)
}) })
}) })
} }
} }
module.exports = { SettingsManager }

View file

@ -1,15 +1,15 @@
import termkit from "terminal-kit" const termkit = require("terminal-kit")
import cliProgress from "cli-progress" const cliProgress = require("cli-progress")
import fs from "fs" const fs = require("fs")
const path = require("path")
export class UI { class UI {
term term
bars = [] bars = []
multibar multibar
settings settings
currentSetting currentSetting
settingsFile
constructor(settings, currentSetting) { constructor(settings, currentSetting, settingsFile) {
this.term = termkit.terminal this.term = termkit.terminal
this.multibar = new cliProgress.MultiBar({ this.multibar = new cliProgress.MultiBar({
@ -21,7 +21,7 @@ export class UI {
this.settings = settings this.settings = settings
this.currentSetting = currentSetting this.currentSetting = currentSetting
this.settingsFile = settingsFile
} }
/** /**
* *
@ -92,10 +92,10 @@ export class UI {
this.term.inputField(() => { process.exit() }) this.term.inputField(() => { process.exit() })
} }
async startMenu(settings) { async startMenu() {
await this.#menu() await this.#menu()
} }
async #menu() { async #menu(settingsFile) {
let menu = [] let menu = []
for (let i = 0; i < this.settings.presets.length; i++) { for (let i = 0; i < this.settings.presets.length; i++) {
menu.push(`${i}. ${this.settings.presets[i].name}`) menu.push(`${i}. ${this.settings.presets[i].name}`)
@ -108,12 +108,14 @@ export class UI {
this.term.yellow("Currently using ").bgMagenta(`"${this.settings.presets[this.settings.currentSetting].name}"`).yellow(" preset") this.term.yellow("Currently using ").bgMagenta(`"${this.settings.presets[this.settings.currentSetting].name}"`).yellow(" preset")
this.term.singleColumnMenu(menu, (error, response) => { this.term.singleColumnMenu(menu, (error, response) => {
this.settings.currentSetting = response.selectedIndex this.settings.currentSetting = response.selectedIndex
fs.writeFileSync("settings.json", JSON.stringify(this.settings))
this.term.green("\n Using").green.bold(` ${this.settings.presets[this.settings.currentSetting].name} `).green("setting\n") this.term.green("\n Using").green.bold(` ${this.settings.presets[this.settings.currentSetting].name} `).green("setting\n")
fs.writeFileSync(path.resolve(this.settingsFile, "settings.json"), JSON.stringify(this.settings))
this.term.grey("Press enter to exit...") this.term.grey("Press enter to exit...")
this.term.inputField(() => { process.exit() }) this.term.inputField(() => { process.exit() })
}) })
} }
} }
module.exports = { UI }

View file

@ -6,7 +6,6 @@
"bin": { "bin": {
"DMC": "bin/index.js" "DMC": "bin/index.js"
}, },
"type": "module",
"scripts": { "scripts": {
"start": "node bin/index.js", "start": "node bin/index.js",
"build": "pkg . --output dist --debug", "build": "pkg . --output dist --debug",