fixed global settings holefully
This commit is contained in:
parent
7e58b4e703
commit
24a1543c2a
5 changed files with 50 additions and 44 deletions
29
bin/index.js
29
bin/index.js
|
@ -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
|
||||||
|
|
|
@ -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 }
|
|
@ -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 }
|
26
lib/ui.js
26
lib/ui.js
|
@ -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 }
|
|
@ -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",
|
||||||
|
|
Loading…
Reference in a new issue