UNPKG

@papavault/cli

Version:

CLI tool for Papa Vault Secret Manager

50 lines (49 loc) 2.86 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.statusCommand = statusCommand; const chalk_1 = __importDefault(require("chalk")); const config_1 = require("../utils/config"); const api_1 = require("../utils/api"); function statusCommand(program) { program .command('status') .description('Check the current authentication and project status') .option('-t, --token <token>', 'API token for authentication (overrides stored token)') .action(async (options) => { console.log(chalk_1.default.bold('\nPapa Vault CLI Status:')); console.log(chalk_1.default.gray('-------------------')); // Check authentication status const isLoggedIn = (0, config_1.isAuthenticated)() || !!options.token; console.log(chalk_1.default.bold('Authentication:'), isLoggedIn ? chalk_1.default.green('Logged in') : chalk_1.default.red('Not logged in')); if (!isLoggedIn) { console.log(chalk_1.default.yellow('\nRun `papavault login` to authenticate or provide a token with --token.')); return; } // Check project configuration const projectId = (0, config_1.getProjectId)(); const stage = (0, config_1.getStage)(); if (!projectId || !stage) { console.log(chalk_1.default.bold('Project:'), chalk_1.default.red('Not configured')); console.log(chalk_1.default.yellow('\nRun `papavault set-project` to configure your project.')); return; } // Fetch project details try { const project = await (0, api_1.getProject)(projectId, options.token); const environment = project.environments.find((env) => env.id === stage); console.log(chalk_1.default.bold('Project:'), chalk_1.default.green(project.name), chalk_1.default.gray(`(${projectId})`)); console.log(chalk_1.default.bold('Environment:'), environment ? chalk_1.default.green(environment.name) : chalk_1.default.red('Unknown'), chalk_1.default.gray(`(${stage})`)); console.log(chalk_1.default.green('\nCLI is ready for syncing secrets.')); console.log(chalk_1.default.gray('Run `papavault sync` to fetch secrets.')); } catch (error) { console.log(chalk_1.default.bold('Project:'), chalk_1.default.red(`Error fetching project details (${projectId})`)); console.log(chalk_1.default.bold('Environment:'), chalk_1.default.red(`Unknown (${stage})`)); console.error(chalk_1.default.red('\nError:'), error); console.log(chalk_1.default.yellow('\nRun `papavault set-project` to reconfigure your project.')); } }); }