feat: app secret ls --machine #367

Merged
decentral1se merged 2 commits from app-secret-ls-m into main 2023-10-05 06:37:47 +00:00
3 changed files with 26 additions and 3 deletions

View File

@ -356,6 +356,7 @@ var appSecretLsCommand = cli.Command{
internal.DebugFlag,
internal.OfflineFlag,
internal.ChaosFlag,
internal.MachineReadableFlag,
},
Before: internal.SubCommandBefore,
Usage: "List all secrets",
@ -407,7 +408,11 @@ var appSecretLsCommand = cli.Command{
}
if table.NumLines() > 0 {
table.Render()
if internal.MachineReadable {
table.JSONRender()
} else {
table.Render()
}
} else {
logrus.Warnf("no secrets stored for %s", app.Name)
}

View File

@ -3,6 +3,7 @@ package jsontable
import (
"fmt"
"io"
"strings"
"github.com/olekukonko/tablewriter"
)
@ -109,6 +110,9 @@ func (t *JSONTable) _JSONRenderInner() {
}
writeChar(t.out, '{')
for keyidx, key := range t.keys {
key := strings.ToLower(key)
key = strings.ReplaceAll(key, " ", "-")
value := "nil"
if keyidx < len(row) {
value = row[keyidx]
@ -138,10 +142,8 @@ func (t *JSONTable) JSONRender() {
if t.hasCaption {
fmt.Fprintf(t.out, "\"%s\":\"%s\",", t.captionLabel, t.caption)
}
fmt.Fprintf(t.out, "\"%s\":", t.dataLabel)
}
// write list

View File

@ -325,6 +325,22 @@ setup(){
assert_success
}
@test "ls: show secrets as machine readable" {
run $ABRA app secret ls "$TEST_APP_DOMAIN"
assert_success
assert_output --partial 'false'
run $ABRA app secret generate "$TEST_APP_DOMAIN" --all
assert_success
run $ABRA app secret ls "$TEST_APP_DOMAIN" --machine
assert_success
assert_output --partial '"created-on-server":"true"'
run $ABRA app secret rm "$TEST_APP_DOMAIN" --all
assert_success
}
@test "ls: bail if unstaged changes and no --chaos" {
run bash -c "echo foo >> $ABRA_DIR/recipes/$TEST_RECIPE/foo"
assert_success