alks
Version:
CLI for working with ALKS
58 lines (49 loc) • 1.51 kB
text/typescript
import commander from 'commander';
import { generateProfile } from '../generateProfile';
import { getAlksAccounts } from '../getAlksAccounts';
import { red } from 'cli-color';
export async function handleAlksProfilesGenerate(
options: commander.OptionValues
) {
if (options.all) {
// Generate profiles for all account/role pairs
const accounts = await getAlksAccounts();
let profilesGenerated = 0;
for (const account of accounts) {
const accountName =
account.skypieaAccount?.alias ?? account.account.substring(0, 12);
try {
generateProfile(
accountName,
account.role,
`${accountName}-${account.role}`,
options.force
);
profilesGenerated++;
} catch (err) {
console.error(
red(
`Error generating profile for ${accountName}-${account.role}: ${err}`
)
);
}
}
console.error(
`${profilesGenerated} profile${
profilesGenerated == 1 ? '' : 's'
} generated`
);
} else if (options.account) {
// Generate a single profile
if (!options.role) {
throw new Error('role is required');
}
const profileName = options.profile ?? options.namedProfile;
generateProfile(options.account, options.role, profileName, options.force);
console.error(`Profile ${profileName} generated`);
} else {
throw new Error(
'Either --all or --account and --role is required at a minimum'
);
}
}