diff --git a/CHANGELOG.md b/CHANGELOG.md index 671756c..ddf44dd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,3 @@ -## [0.3.0](https://git.kjan.de/jank/project-cli/compare/v0.2.2...v0.3.0) (2025-06-19) - -### Features - -* Add some compiling ([81ee09b](https://git.kjan.de/jank/project-cli/commit/81ee09b42fafa5300e384a236602ee22f838da00)) - ## [0.2.2](https://git.kjan.de/jank/project-cli/compare/v0.2.1...v0.2.2) (2025-06-19) ### Bug Fixes diff --git a/index.ts b/index.ts index 5591069..d067790 100644 --- a/index.ts +++ b/index.ts @@ -1,5 +1,3 @@ -#!/usr/bin/env node - import fs from "fs"; import { confirm, select, input } from "@inquirer/prompts"; import { exit } from "process"; @@ -12,108 +10,66 @@ import { type Project, } from "./configuration/configuration"; import { execSync } from "child_process"; -import { program } from "commander"; -const CLI_NAME = "pcli"; - -program - .name("project-cli") - .description("A cli for managing projects") - .action(async () => { - if (!fs.existsSync(configPath + "config.toml")) { - const createConfig = await confirm({ - message: - "No cofig has been found. Would you like to generate a new one?", - }); - - if (createConfig) { - generateDefaultConfig(); - } else { - console.log( - "This project can not run without the config. Either create it yourself or generate the default.", - ); - exit(1); - } - } - - if ( - !getProjects() || - getProjects().length == 0 || - getProjects().length == undefined - ) { - const anwser = await select({ - message: "Create a new Project", - choices: ["Clone a project with git", "Create a new empty Project"], - }); - if (anwser == "Clone a project with git") { - const repoUrl = await input({ - message: "What is the url of the repo?", - }); - const wantsCustomName = await confirm({ - message: "Would you like to give this project a custom name?", - default: false, - }); - let customName = ""; - if (wantsCustomName) { - customName = await input({ - message: "What would you like the custom name to be?", - }); - } - - execSync( - "cd " + - getConfiguration().projectsDirectory + - " && " + - getConfiguration() - .cloningCommand.replace("%s", repoUrl) - .replace("%n", customName), - ); - - const newProject: Project = { - name: customName, - }; - addProject(newProject); - } else if (anwser == "Create a new empty Project") { - const name = await input({ - message: "What would you like to call the project?", - }); - fs.mkdirSync(getConfiguration().projectsDirectory + "/" + name); - const newProject: Project = { - name: name, - }; - addProject(newProject); - } - } - - const pickedProject = await select({ - message: "Which Project would you like to go to?", - choices: getProjects().map((project: Project) => project.name), - }); - - process.chdir(getConfiguration().projectsDirectory + "/" + pickedProject); - - console.log(getProjects()); +if (!fs.existsSync(configPath + "config.toml")) { + const createConfig = await confirm({ + message: "No cofig has been found. Would you like to generate a new one?", }); -program.command("init").action(() => { - console.log(`${CLI_NAME}() { - local output - output=$(command ${CLI_NAME} "$@") - local exit_code=$? - - if [ $exit_code -eq 0 ]; then - echo "$output" | while IFS= read -r line; do - if [[ $line == __EXEC__* ]]; then - eval "\${line#__EXEC__}" - else - echo "$line" - fi - done - else - echo "$output" >&2 - return $exit_code - fi -}`); -}); + if (createConfig) { + generateDefaultConfig(); + } else { + console.log( + "This project can not run without the config. Either create it yourself or generate the default.", + ); + exit(1); + } +} -program.parse(); +if ( + !getProjects() || + getProjects().length == 0 || + getProjects().length == undefined +) { + const anwser = await select({ + message: "Create a new Project", + choices: ["Clone a project with git", "Create a new empty Project"], + }); + if (anwser == "Clone a project with git") { + const repoUrl = await input({ message: "What is the url of the repo?" }); + const wantsCustomName = await confirm({ + message: "Would you like to give this project a custom name?", + default: false, + }); + let customName = ""; + if (wantsCustomName) { + customName = await input({ + message: "What would you like the custom name to be?", + }); + } + + execSync( + "cd " + + getConfiguration().projectsDirectory + + " && " + + getConfiguration() + .cloningCommand.replace("%s", repoUrl) + .replace("%n", customName), + ); + + const newProject: Project = { + name: customName, + }; + addProject(newProject); + } else if (anwser == "Create a new empty Project") { + const name = await input({ + message: "What would you like to call the project?", + }); + fs.mkdirSync(getConfiguration().projectsDirectory + "/" + name); + const newProject: Project = { + name: name, + }; + addProject(newProject); + } +} +console.log(getProjects()); diff --git a/package-lock.json b/package-lock.json index b4ea70a..2c873e9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "proj-cli", - "version": "0.3.0", + "version": "0.2.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "proj-cli", - "version": "0.3.0", + "version": "0.2.2", "dependencies": { "@saithodev/semantic-release-gitea": "^2.1.0", "@semantic-release/changelog": "^6.0.3", @@ -21,9 +21,6 @@ "inquirer": "^12.6.3", "semantic-release": "^24.2.5" }, - "bin": { - "pcli": "dist/index.js" - }, "devDependencies": { "@types/bun": "latest" }, diff --git a/package.json b/package.json index 80ddf2d..de9c75a 100644 --- a/package.json +++ b/package.json @@ -1,19 +1,8 @@ { "name": "proj-cli", - "version": "0.3.0", + "version": "0.2.2", "module": "index.ts", "type": "module", - "bin": { - "pcli": "./dist/index.js" - }, - "scripts": { - "build": "bun build index.ts --outfile dist/index.js --target node", - "dev": "bun run index.ts", - "prepublishOnly": "bun run build" - }, - "files": [ - "dist/" - ], "devDependencies": { "@types/bun": "latest" },