From 24a1543c2a38b54d818ad7025ec5d71d7e844fa5 Mon Sep 17 00:00:00 2001 From: Djkato Date: Thu, 5 May 2022 00:45:37 +0200 Subject: [PATCH] fixed global settings holefully --- bin/index.js | 29 ++++++++++++++--------------- lib/encoder.js | 8 +++++--- lib/settingsManager.js | 30 +++++++++++++++++------------- lib/ui.js | 26 ++++++++++++++------------ package.json | 1 - 5 files changed, 50 insertions(+), 44 deletions(-) diff --git a/bin/index.js b/bin/index.js index bcc53b5..4709a9c 100644 --- a/bin/index.js +++ b/bin/index.js @@ -1,18 +1,11 @@ #!/usr/bin/env node -import fs from 'fs' -import { Encoder } from "../lib/encoder.js" -import { UI } from "../lib/ui.js" -import termkit from "terminal-kit" -import { SettingsManager } from "../lib/settingsManager.js" -import path from "path" -//get settings -let settings = new SettingsManager() -getSettings() -async function getSettings() { - await settings.start() -} +const fs = require('fs') +const path = require("path") +const termkit = require("terminal-kit") +const { Encoder } = require("../lib/encoder.js") +const { UI } = require("../lib/ui.js") +const { SettingsManager } = require("../lib/settingsManager.js") let term = termkit.terminal -const ui = new UI(settings.settings, settings.currentSetting) /** * 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) //if launched without params if (!inputList[0]) { - ui.startMenu() //stops program here + main(true) } //Parse file inputs (n Drag n drop or arguments) @@ -63,7 +56,13 @@ else { } 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 let isListEncodable = true diff --git a/lib/encoder.js b/lib/encoder.js index a41fbe8..593701b 100644 --- a/lib/encoder.js +++ b/lib/encoder.js @@ -1,6 +1,6 @@ -import { exec } from 'child_process' +const { exec } = require('child_process') -export class Encoder { +class Encoder { currentSetting settings encoder @@ -135,4 +135,6 @@ export class Encoder { } } -} \ No newline at end of file +} + +module.exports = { Encoder } \ No newline at end of file diff --git a/lib/settingsManager.js b/lib/settingsManager.js index 2691e1a..4e41d5b 100644 --- a/lib/settingsManager.js +++ b/lib/settingsManager.js @@ -1,10 +1,11 @@ -import fs from "fs" -import path from "path" -export class SettingsManager { +const fs = require("fs") +const path = require("path") + +class SettingsManager { settings currentSetting - + settingsFile = __dirname constructor() { } @@ -15,18 +16,18 @@ export class SettingsManager { async #init() { let settings - settings = await this.#getSettings().catch(async (err) => { - settings = undefined - }) - if (!settings) settings = await this.#makeNewSettingsFile() + try { + settings = await this.#getSettings() + } catch (error) { + console.log(error) + settings = await this.#makeNewSettingsFile() + } this.settings = JSON.parse(settings.toString()) this.currentSetting = this.settings.presets[this.settings.currentSetting] } async #getSettings() { - const dir = __dirname - console.log(dir) 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) resolve(data) }) @@ -175,9 +176,12 @@ export class SettingsManager { } ` 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) }) }) } -} \ No newline at end of file +} + +module.exports = { SettingsManager } \ No newline at end of file diff --git a/lib/ui.js b/lib/ui.js index d3ccf04..3beb05f 100644 --- a/lib/ui.js +++ b/lib/ui.js @@ -1,15 +1,15 @@ -import termkit from "terminal-kit" -import cliProgress from "cli-progress" -import fs from "fs" - -export class UI { +const termkit = require("terminal-kit") +const cliProgress = require("cli-progress") +const fs = require("fs") +const path = require("path") +class UI { term bars = [] multibar settings currentSetting - - constructor(settings, currentSetting) { + settingsFile + constructor(settings, currentSetting, settingsFile) { this.term = termkit.terminal this.multibar = new cliProgress.MultiBar({ @@ -21,7 +21,7 @@ export class UI { this.settings = settings this.currentSetting = currentSetting - + this.settingsFile = settingsFile } /** * @@ -92,10 +92,10 @@ export class UI { this.term.inputField(() => { process.exit() }) } - async startMenu(settings) { + async startMenu() { await this.#menu() } - async #menu() { + async #menu(settingsFile) { let menu = [] for (let i = 0; i < this.settings.presets.length; i++) { 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.singleColumnMenu(menu, (error, response) => { 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") + fs.writeFileSync(path.resolve(this.settingsFile, "settings.json"), JSON.stringify(this.settings)) this.term.grey("Press enter to exit...") this.term.inputField(() => { process.exit() }) }) } -} \ No newline at end of file +} + +module.exports = { UI } \ No newline at end of file diff --git a/package.json b/package.json index aaa56d8..ab3e057 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,6 @@ "bin": { "DMC": "bin/index.js" }, - "type": "module", "scripts": { "start": "node bin/index.js", "build": "pkg . --output dist --debug",