UNPKG

@apr/werckerenvtools

Version:

Tools to work with environment variables in wercker

37 lines (36 loc) 1.17 kB
const WerckerApi = require("../api").WerckerApi; exports.command = "trim [organization] [app] [pipeline]"; exports.desc = "Trim pipeline for variables existing in application or organization"; exports.builder = { token: { required: true }, overwrite: { default: false } }; exports.handler = async function(argv) { const api = new WerckerApi(argv.token); const dst = await api.getPipelineByName( argv.organization, argv.app, argv.pipeline ); const organization = await api.getOrganization(argv.organization); const organizationEnvvars = await api.getEnvironmentVariablesForOrganizationId( organization.id ); const app = await api.getApp(argv.organization, argv.app); const appEnvvars = await api.getEnvironmentVariablesForApplicationId(app.id); const existingKeys = new Set( appEnvvars.concat(organizationEnvvars).map(e => e.key) ); const dstEnvvars = await api.getEnvironmentVariablesForPipelineId(dst.id); return Promise.all( dstEnvvars.filter(e => existingKeys.has(e.key)).map(async e => { await api.deleteEnvironmentVariable(e.id); console.log(`Deleted key: ${e.key}`); }) ); };