UNPKG

@onereach/orest-input-cli

Version:

The tool for creating, serving, and publishing OREST Inputs

75 lines (57 loc) 1.84 kB
const isObject = require('lodash/isObject'); const { readConfig, writeConfig } = require('../util/config'); const getVars = require('./getVars'); async function getProfiles() { const config = await readConfig(); if (config) { return Object.keys(config).reduce((acc, key) => { if (isObject(config[key])) { return { ...acc, [key]: config[key] }; } return acc; }, {}); } else { return false; } } async function setProfiles(profiles) { return writeConfig(profiles); } async function addProfile(profileName = 'default') { const profiles = (await getProfiles()) || {}; if (profiles[profileName]) { console.log(`The "${profileName}" profile already exists.`); return; } const profile = await getVars(); await setProfiles({ ...profiles, [profileName]: profile }); console.log(`Added the "${profileName}" profile.`); } async function removeProfile(profileName = 'default') { const profiles = (await getProfiles()) || {}; if (!profiles[profileName]) { console.log(`The "${profileName}" profile does not exist.`); return; } delete profiles[profileName]; await setProfiles(profiles); console.log(`Deleted the "${profileName}" profile.`); } async function listProfiles() { const profiles = (await getProfiles()) || {}; Object.keys(profiles).forEach(profileName => { console.log(`${profileName}:`); Object.keys(profiles[profileName]).forEach(key => { if (key === 'password') { console.log(` ${key}: ***`); } else { console.log(` ${key}: ${profiles[profileName][key]}`); } }); }); } module.exports.getProfiles = getProfiles; module.exports.setProfiles = setProfiles; module.exports.addProfile = addProfile; module.exports.removeProfile = removeProfile; module.exports.listProfiles = listProfiles;