Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | 193x 193x 193x 193x 193x 193x 193x 193x 193x 193x 193x 193x 193x 193x 193x 193x 193x 193x 193x 193x 193x 193x 193x 193x 193x 193x 193x 193x 193x 193x 193x 193x | import {
getAllEnvVars,
getAllEnvVarsForAddons,
getAllEnvVarsForDependencies,
} from '@clevercloud/client/esm/api/v2/application.js';
import { toNameEqualsValueString } from '@clevercloud/client/esm/utils/env-vars.js';
import { z } from 'zod';
import { defineCommand } from '../../lib/define-command.js';
import { defineOption } from '../../lib/define-option.js';
import { Logger } from '../../logger.js';
import * as Application from '../../models/application.js';
import { sendToApi } from '../../models/send-to-api.js';
import { aliasOption, appIdOrNameOption, envFormatOption } from '../global.options.js';
export const envCommand = defineCommand({
description: 'Manage environment variables of an application',
since: '0.2.0',
options: {
addExportsOption: defineOption({
name: 'add-export',
schema: z.boolean().default(false),
description: 'Display sourceable env variables setting',
deprecated: 'use `--format shell` instead',
}),
alias: aliasOption,
app: appIdOrNameOption,
format: envFormatOption,
},
args: [],
async handler(options) {
const { alias, app: appIdOrName, addExportsOption, format } = options;
const { ownerId, appId } = await Application.resolveId(appIdOrName, alias);
const [envFromApp, envFromAddons, envFromDeps] = await Promise.all([
getAllEnvVars({ id: ownerId, appId }).then(sendToApi),
getAllEnvVarsForAddons({ id: ownerId, appId }).then(sendToApi),
getAllEnvVarsForDependencies({ id: ownerId, appId }).then(sendToApi),
]);
switch (format) {
case 'json': {
Logger.printJson({
env: envFromApp,
fromAddons: envFromAddons.map((addon) => ({
addonId: addon.addon_id,
addonName: addon.addon_name,
env: addon.env,
})),
fromDependencies: envFromDeps.map((dep) => ({
addonId: dep.app_id,
addonName: dep.app_name,
env: dep.env,
})),
});
break;
}
case 'shell':
case 'human':
default: {
const addExports = addExportsOption || format === 'shell';
Logger.println('# Manually set env variables');
Logger.println(toNameEqualsValueString(envFromApp, { addExports }));
envFromAddons.forEach((addon) => {
Logger.println('# Addon ' + addon.addon_name);
Logger.println(toNameEqualsValueString(addon.env, { addExports }));
});
envFromDeps.forEach((dep) => {
Logger.println('# Dependency ' + dep.app_name);
Logger.println(toNameEqualsValueString(dep.env, { addExports }));
});
}
}
},
});
|