UNPKG

ashish-cli

Version:

Universal Code Runner CLI - Execute code in multiple languages without local compilers

54 lines (48 loc) 1.49 kB
const fs = require("fs-extra"); const path = require("path"); const os = require("os"); /** * Load configuration from file or create default */ async function loadConfig() { const configDir = path.join(os.homedir(), ".ashish"); const configPath = path.join(configDir, "config.json"); const defaultConfig = { apiEndpoint: "https://emkc.org/api/v2/piston", timeout: 10, usePiston: true, }; try { if (await fs.pathExists(configPath)) { const userConfig = await fs.readJson(configPath); return { ...defaultConfig, ...userConfig, configPath }; } else { // Create config directory and file await fs.ensureDir(configDir); await fs.writeJson(configPath, defaultConfig, { spaces: 2 }); return { ...defaultConfig, configPath }; } } catch (error) { console.warn("Warning: Could not load config file, using defaults"); return { ...defaultConfig, configPath }; } } /** * Save configuration */ async function saveConfig(config) { const configDir = path.join(os.homedir(), ".ashish"); const configPath = path.join(configDir, "config.json"); try { await fs.ensureDir(configDir); const { configPath: _, ...configToSave } = config; await fs.writeJson(configPath, configToSave, { spaces: 2 }); return true; } catch (error) { throw new Error(`Could not save config: ${error.message}`); } } module.exports = { loadConfig, saveConfig, };