import fs from "fs"; import os from "os"; export const configPath = os.homedir() + "/.config/project-cli/"; export interface Project { name: string; } export interface Configuration { projectsDirectory: string; cloningCommand: string; } export function getProjects(): Project[] { const projectsString = fs .readFileSync(configPath + "projects.json") .toString(); return JSON.parse(projectsString) as Project[]; } export function getConfiguration(): Configuration { return JSON.parse( fs.readFileSync(configPath + "config.json").toString(), ) as Configuration; } export function addProject(project: Project) { let projects = getProjects(); if (projects.length == undefined) { saveProjects([project]); } else { projects.push(project); saveProjects(projects); } } export function generateDefaultConfig() { fs.mkdirSync(configPath, { recursive: true }); fs.mkdirSync(configPath + "templates/", { recursive: true }); const defaultConfig: Configuration = { projectsDirectory: os.homedir() + "/projects", cloningCommand: "git clone %s %n", }; const configString = JSON.stringify(defaultConfig); fs.writeFileSync(configPath + "config.json", configString); const projects: Project[] = []; saveProjects(projects); } function saveProjects(projects: Project[]) { const projectsString = JSON.stringify(projects); fs.writeFileSync(configPath + "projects.json", projectsString); }