UNPKG

ad4m-host

Version:
65 lines (64 loc) 2.06 kB
import { buildAd4mClient, readPassphrase, prettify } from './util'; export const command = 'agent [action]'; export const desc = 'Agent related action'; ; export const builder = (yargs) => yargs .positional('action', { type: 'string', describe: 'Action that should be executed on the agent', choices: ['generate', 'lock', 'unlock', 'status', 'me'], default: 'status', }).options({ passphrase: { type: 'string', describe: 'Password for the agent' } }); export const handler = async (argv) => { const { server, verbose, action, passphrase } = argv; if (verbose) { console.info(`Attempting to connect to ${server}`); } const ad4mClient = buildAd4mClient(server); switch (action) { case 'generate': await generate(ad4mClient, passphrase); break; case 'lock': await lock(ad4mClient); break; case 'unlock': await unlock(ad4mClient, passphrase); break; case 'status': await status(ad4mClient); break; case 'me': await me(ad4mClient); break; default: console.info(`Action "${argv.action}" is not defined on agent.`); break; } process.exit(); }; async function generate(ad4mClient, password) { const passphrase = password || readPassphrase(); const agentStatus = await ad4mClient.agent.generate(passphrase); prettify(agentStatus); } async function lock(ad4mClient) { // Passphrase not needed const agentStatus = await ad4mClient.agent.lock(""); prettify(agentStatus); } async function unlock(ad4mClient, password) { const passphrase = password || readPassphrase(); const agentStatus = await ad4mClient.agent.unlock(passphrase); prettify(agentStatus); } async function status(ad4mClient) { const agentStatus = await ad4mClient.agent.status(); prettify(agentStatus); } async function me(ad4mClient) { const agent = await ad4mClient.agent.me(); prettify(agent); }