aboutsummaryrefslogtreecommitdiffstats
path: root/apps/cli/src/index.ts
diff options
context:
space:
mode:
authorMohamedBassem <me@mbassem.com>2024-04-24 11:37:35 +0100
committerMohamedBassem <me@mbassem.com>2024-04-24 12:21:55 +0100
commit3352a3ea393849550573deff8d774ba6bf149471 (patch)
treea7d78db4fadbe7123c7d5045f5a537965382b84a /apps/cli/src/index.ts
parentaf0cf9c1ee10901ab91b04a1d73afdcb2191a88f (diff)
downloadkarakeep-3352a3ea393849550573deff8d774ba6bf149471.tar.zst
build(cli): Prepare for publishing CLI to npm
Diffstat (limited to 'apps/cli/src/index.ts')
-rw-r--r--apps/cli/src/index.ts34
1 files changed, 34 insertions, 0 deletions
diff --git a/apps/cli/src/index.ts b/apps/cli/src/index.ts
new file mode 100644
index 00000000..cdb2956e
--- /dev/null
+++ b/apps/cli/src/index.ts
@@ -0,0 +1,34 @@
+#! /usr/bin/env node
+import { bookmarkCmd } from "@/commands/bookmarks";
+import { listsCmd } from "@/commands/lists";
+import { tagsCmd } from "@/commands/tags";
+import { whoamiCmd } from "@/commands/whoami";
+import { setGlobalOptions } from "@/lib/globals";
+import { Command, Option } from "@commander-js/extra-typings";
+
+const program = new Command()
+ .name("hoarder-cli")
+ .description("A CLI interface to interact with the hoarder api")
+ .addOption(
+ new Option("--api-key <key>", "The API key to interact with the API")
+ .makeOptionMandatory(true)
+ .env("HOARDER_API_KEY"),
+ )
+ .addOption(
+ new Option(
+ "--server-addr <addr>",
+ "The address of the server to connect to",
+ )
+ .makeOptionMandatory(true)
+ .env("HOARDER_SERVER_ADDR"),
+ )
+ .version(process.env.SERVER_VERSION ?? "nightly");
+
+program.addCommand(bookmarkCmd);
+program.addCommand(listsCmd);
+program.addCommand(tagsCmd);
+program.addCommand(whoamiCmd);
+
+setGlobalOptions(program.opts());
+
+program.parse();