diff --git a/index.ts b/index.ts index a8204a8..090ce46 100644 --- a/index.ts +++ b/index.ts @@ -14,15 +14,11 @@ import { import { execSync } from "child_process"; import { program } from "commander"; -import packageJson from "./package.json"; -export const VERSION = packageJson.version; - const CLI_NAME = "pcli"; program .name("project-cli") .description("A cli for managing projects") - .version(VERSION) .action(async () => { if (!fs.existsSync(configPath + "config.json")) { const createConfig = await confirm({ @@ -94,25 +90,29 @@ program choices: getProjects().map((project: Project) => project.name), }); - console.log( - "__EXEC__ cd " + - getConfiguration().projectsDirectory + - "/" + - pickedProject, - ); + process.chdir(getConfiguration().projectsDirectory + "/" + pickedProject); console.log(getProjects()); }); program.command("init").action(() => { console.log(`${CLI_NAME}() { - command ${CLI_NAME} "$@" | while IFS= read -r line; do - if [[ $line == __EXEC__* ]]; then - eval "\${line#__EXEC__}" - else - echo "$line" - fi - done + 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 }`); }); diff --git a/package-lock.json b/package-lock.json index 95df8c9..b681fda 100644 --- a/package-lock.json +++ b/package-lock.json @@ -636,9 +636,9 @@ } }, "node_modules/@octokit/request": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-10.0.3.tgz", - "integrity": "sha512-V6jhKokg35vk098iBqp2FBKunk3kMTXlmq+PtbV9Gl3TfskWlebSofU9uunVKhUN7xl+0+i5vt0TGTG8/p/7HA==", + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-10.0.2.tgz", + "integrity": "sha512-iYj4SJG/2bbhh+iIpFmG5u49DtJ4lipQ+aPakjL9OKpsGY93wM8w06gvFbEQxcMsZcCvk5th5KkIm2m8o14aWA==", "license": "MIT", "dependencies": { "@octokit/endpoint": "^11.0.0", @@ -1398,13 +1398,13 @@ } }, "node_modules/@types/bun": { - "version": "1.2.17", - "resolved": "https://registry.npmjs.org/@types/bun/-/bun-1.2.17.tgz", - "integrity": "sha512-l/BYs/JYt+cXA/0+wUhulYJB6a6p//GTPiJ7nV+QHa8iiId4HZmnu/3J/SowP5g0rTiERY2kfGKXEK5Ehltx4Q==", + "version": "1.2.16", + "resolved": "https://registry.npmjs.org/@types/bun/-/bun-1.2.16.tgz", + "integrity": "sha512-1aCZJ/6nSiViw339RsaNhkNoEloLaPzZhxMOYEa7OzRzO41IGg5n/7I43/ZIAW/c+Q6cT12Vf7fOZOoVIzb5BQ==", "dev": true, "license": "MIT", "dependencies": { - "bun-types": "1.2.17" + "bun-types": "1.2.16" } }, "node_modules/@types/cacheable-request": { @@ -1481,9 +1481,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "24.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.4.tgz", - "integrity": "sha512-ulyqAkrhnuNq9pB76DRBTkcS6YsmDALy6Ua63V8OhrOBgbcYt6IOdzpw5P1+dyRIyMerzLkeYWBeOXPpA9GMAA==", + "version": "24.0.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.3.tgz", + "integrity": "sha512-R4I/kzCYAdRLzfiCabn9hxWfbuHS573x+r0dJMkkzThEa7pbrcDWK+9zu3e7aBOouf+rQAciqPFMnxwr0aWgKg==", "license": "MIT", "dependencies": { "undici-types": "~7.8.0" @@ -1669,9 +1669,9 @@ } }, "node_modules/bun-types": { - "version": "1.2.17", - "resolved": "https://registry.npmjs.org/bun-types/-/bun-types-1.2.17.tgz", - "integrity": "sha512-ElC7ItwT3SCQwYZDYoAH+q6KT4Fxjl8DtZ6qDulUFBmXA8YB4xo+l54J9ZJN+k2pphfn9vk7kfubeSd5QfTVJQ==", + "version": "1.2.16", + "resolved": "https://registry.npmjs.org/bun-types/-/bun-types-1.2.16.tgz", + "integrity": "sha512-ciXLrHV4PXax9vHvUrkvun9VPVGOVwbbbBF/Ev1cXz12lyEZMoJpIJABOfPcN9gDJRaiKF9MVbSygLg4NXu3/A==", "dev": true, "license": "MIT", "dependencies": {