Skip to content

Commit 51699eb

Browse files
committed
feat(terraform/output): add list sub command for output
List subcommand in output lists all available outputs in latest state. It does not displays any information about state but just output id at the moment.
1 parent 4e65479 commit 51699eb

File tree

1 file changed

+21
-6
lines changed

1 file changed

+21
-6
lines changed

scripts/terraform/resources/output.js

+21-6
Original file line numberDiff line numberDiff line change
@@ -3,29 +3,44 @@ const Request = require("../../shared/request");
33
const Help = require("../help");
44

55
const OUTPUT = {
6+
list: async (...args) => {
7+
const env = Environment();
8+
if (!env.secrets.TFC_TOKEN) {
9+
Help('Missing TFC_TOKEN.');
10+
}
11+
if (!env.secrets.TFC_WORKSPACE) {
12+
Help('Missing TFC_WORKSPACE.');
13+
}
14+
const state = await Request('app.terraform.io', 'GET', `/api/v2/workspaces/${env.secrets.TFC_WORKSPACE}/current-state-version`, {
15+
'Authorization': `Bearer ${env.secrets.TFC_TOKEN}`
16+
});
17+
const stateJSON = JSON.parse(state);
18+
stateJSON.data.relationships.outputs.data.forEach((output, i) => {
19+
console.log(i, output.id);
20+
});
21+
},
622
get: async (...args) => {
723
const env = Environment();
8-
if (env.secrets.TFC_TOKEN) {
24+
if (!env.secrets.TFC_TOKEN) {
925
Help('Missing TFC_TOKEN.');
1026
}
11-
if (env.secrets.TFC_WORKSPACE) {
27+
if (!env.secrets.TFC_WORKSPACE) {
1228
Help('Missing TFC_WORKSPACE.');
1329
}
1430
const state = await Request('app.terraform.io', 'GET', `/api/v2/workspaces/${env.secrets.TFC_WORKSPACE}/current-state-version`, {
1531
'Authorization': `Bearer ${env.secrets.TFC_TOKEN}`
1632
});
1733

18-
console.log(state);
19-
2034
const output_id = JSON.parse(state).data.relationships.outputs.data[0].id;
21-
35+
2236
let outputs = await Request('app.terraform.io', 'GET', `/api/v2/state-version-outputs/${output_id}`, {
2337
'Authorization': `Bearer ${env.secrets.TFC_TOKEN}`
2438
});
2539

2640
outputs = JSON.parse(outputs).data.attributes.value;
2741

28-
console.log(outputs.byString(env.args[0] || ''));
42+
// console.log(outputs.byString(env.args[0] || ''));
43+
console.log(JSON.stringify(outputs, null, ' '));
2944

3045
},
3146
}

0 commit comments

Comments
 (0)