feat: Add basic project creation
All checks were successful
Release / Release (push) Successful in 32s
All checks were successful
Release / Release (push) Successful in 32s
This commit is contained in:
parent
85f3baef47
commit
fb23f6fd8b
2 changed files with 90 additions and 1 deletions
|
@ -4,8 +4,36 @@ import * as toml from "@std/toml";
|
|||
|
||||
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 toml.parse(
|
||||
fs.readFileSync(configPath + "config.toml").toString(),
|
||||
) as unknown 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() {
|
||||
|
@ -14,10 +42,19 @@ export function generateDefaultConfig() {
|
|||
|
||||
const defaultConfig: Configuration = {
|
||||
projectsDirectory: os.homedir() + "/projects",
|
||||
cloningCommand: "git clone %s %n",
|
||||
};
|
||||
|
||||
const configString = toml.stringify(
|
||||
defaultConfig as unknown as Record<string, unknown>,
|
||||
);
|
||||
fs.writeFileSync(configPath + "config.toml", configString);
|
||||
|
||||
const projects: Project[] = [];
|
||||
saveProjects(projects);
|
||||
}
|
||||
|
||||
function saveProjects(projects: Project[]) {
|
||||
const projectsString = JSON.stringify(projects);
|
||||
fs.writeFileSync(configPath + "projects.json", projectsString);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue