@papavault/cli
Version:
CLI tool for Papa Vault Secret Manager
50 lines (49 loc) • 2.86 kB
JavaScript
;
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.'));
}
});
}