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 | 193x 193x 193x 193x 193x 193x 193x 193x 193x 193x 193x 193x 193x 193x 193x 193x 193x | import { getConfigProviderEnv, updateConfigProviderEnv } from '@clevercloud/client/esm/api/v4/addon.js';
import { validateName } from '@clevercloud/client/esm/utils/env-vars.js';
import { defineCommand } from '../../lib/define-command.js';
import { Logger } from '../../logger.js';
import { resolveConfigProviderId } from '../../models/config-provider.js';
import { sendToApi } from '../../models/send-to-api.js';
import { envVariableNameArg, envVariableValueArg } from '../global.args.js';
import { configProviderIdOrNameArg } from './config-provider.args.js';
export const configProviderSetCommand = defineCommand({
description: 'Add or update an environment variable named <variable-name> with the value <variable-value>',
since: '4.6.0',
options: {},
args: [configProviderIdOrNameArg, envVariableNameArg, envVariableValueArg],
async handler(_options, addonIdOrRealIdOrName, varName, varValue) {
const nameIsValid = validateName(varName);
if (!nameIsValid) {
throw new Error(`Variable name '${varName}' is invalid`);
}
const { realId } = await resolveConfigProviderId(addonIdOrRealIdOrName);
// API returns an array of { name, value } objects
const envVars = await getConfigProviderEnv({ configurationProviderId: realId }).then(sendToApi);
const existingIndex = envVars.findIndex((v) => v.name === varName);
if (existingIndex >= 0) {
envVars[existingIndex].value = varValue;
} else {
envVars.push({ name: varName, value: varValue });
}
await updateConfigProviderEnv({ configurationProviderId: realId }, envVars).then(sendToApi);
Logger.println('Environment variable has been set');
},
});
|