commit-vibes
Version:
A CLI tool to add vibes to your Git commit messages
59 lines (53 loc) • 1.81 kB
JavaScript
import { Command } from "commander";
import { HEADER, HELP_CONTENT } from "./help-text.js";
import { handleStatus } from "./commands/status.js";
import { handleSpotifyConnect } from "./commands/spotify-connect.js";
import { handleSpotifyDisconnect } from "./commands/spotify-disconnect.js";
import { handleListVibes } from "./commands/list-vibes.js";
import { handleDemo } from "./commands/demo.js";
import { handleCommit } from "./commands/commit.js";
import "./signal-handler.js"; // Initialize signal handling
// Create program instance
const program = new Command();
// Setup program information
program
.name("commit-vibes")
.description("A fun and interactive way to create git commits with vibes! 🎵")
.version("1.0.0")
.argument("[message]", "commit message (optional)")
.option("-l, --list-vibes", "list all available vibes")
.option("-c, --custom-vibe <path>", "path to custom vibes configuration file")
.option("-s, --spotify", "connect your Spotify account")
.option("-d, --disconnect", "disconnect your Spotify account")
.option("--status", "show if Spotify is connected")
.option("--demo", "run in demo mode (no real git or Spotify actions)")
.addHelpText("beforeAll", HEADER)
.addHelpText("after", HELP_CONTENT);
export async function runCLI() {
// Parse command line arguments
program.parse();
const options = program.opts();
const args = program.args;
if (options.status) {
await handleStatus();
return;
}
if (options.spotify) {
await handleSpotifyConnect();
return;
}
if (options.disconnect) {
await handleSpotifyDisconnect();
return;
}
if (options.listVibes) {
handleListVibes();
return;
}
if (options.demo) {
await handleDemo(args);
return;
}
await handleCommit(args);
}