CLI: allow --provider flag for login/logout (default whatsapp)

This commit is contained in:
Peter Steinberger
2025-12-07 03:41:17 +00:00
parent f23b16db2b
commit 31f788eb5e
2 changed files with 10 additions and 2 deletions

View File

@@ -105,10 +105,12 @@ export function buildProgram() {
.command("login") .command("login")
.description("Link your personal WhatsApp via QR (web provider)") .description("Link your personal WhatsApp via QR (web provider)")
.option("--verbose", "Verbose connection logs", false) .option("--verbose", "Verbose connection logs", false)
.option("--provider <provider>", "Provider alias (default: whatsapp)")
.action(async (opts) => { .action(async (opts) => {
setVerbose(Boolean(opts.verbose)); setVerbose(Boolean(opts.verbose));
try { try {
await loginWeb(Boolean(opts.verbose)); const provider = opts.provider ?? "whatsapp";
await loginWeb(Boolean(opts.verbose), provider);
} catch (err) { } catch (err) {
defaultRuntime.error(danger(`Web login failed: ${String(err)}`)); defaultRuntime.error(danger(`Web login failed: ${String(err)}`));
defaultRuntime.exit(1); defaultRuntime.exit(1);
@@ -118,8 +120,10 @@ export function buildProgram() {
program program
.command("logout") .command("logout")
.description("Clear cached WhatsApp Web credentials") .description("Clear cached WhatsApp Web credentials")
.action(async () => { .option("--provider <provider>", "Provider alias (default: whatsapp)")
.action(async (opts) => {
try { try {
void opts.provider; // placeholder for future multi-provider; currently web only.
await logoutWeb(defaultRuntime); await logoutWeb(defaultRuntime);
} catch (err) { } catch (err) {
defaultRuntime.error(danger(`Logout failed: ${String(err)}`)); defaultRuntime.error(danger(`Logout failed: ${String(err)}`));

View File

@@ -14,9 +14,13 @@ import {
export async function loginWeb( export async function loginWeb(
verbose: boolean, verbose: boolean,
provider = "whatsapp",
waitForConnection: typeof waitForWaConnection = waitForWaConnection, waitForConnection: typeof waitForWaConnection = waitForWaConnection,
runtime: RuntimeEnv = defaultRuntime, runtime: RuntimeEnv = defaultRuntime,
) { ) {
if (provider !== "whatsapp" && provider !== "web") {
throw new Error(`Unsupported provider: ${provider}`);
}
const sock = await createWaSocket(true, verbose); const sock = await createWaSocket(true, verbose);
logInfo("Waiting for WhatsApp connection...", runtime); logInfo("Waiting for WhatsApp connection...", runtime);
try { try {