Skip to content

Commit 7f37a91

Browse files
author
Dominik Przybyl
committed
fixed vault-cli
1 parent 5ee3c15 commit 7f37a91

File tree

3 files changed

+21
-20
lines changed

3 files changed

+21
-20
lines changed

cmd/aem/vault.go

+4-3
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,17 @@ package main
22

33
import (
44
"github.com/spf13/cobra"
5-
"os"
65
)
76

87
func (c *CLI) vaultCmd() *cobra.Command {
98
cmd := &cobra.Command{
109
Use: "vlt",
1110
Short: "Executes Vault commands",
1211
Run: func(cmd *cobra.Command, args []string) {
13-
argsWithVlt := os.Args[1:] // TODO why not 'args' from the Run function?
14-
_ = c.aem.VendorManager().VaultCLI().CommandShell(argsWithVlt) // TODO proper error handling
12+
if err := c.aem.VendorManager().VaultCLI().CommandShell(args); err != nil {
13+
c.Error(err)
14+
return
15+
}
1516
},
1617
Args: cobra.ArbitraryArgs,
1718
FParseErrWhitelist: cobra.FParseErrWhitelist{

cmd/aem/vendor.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ func (c *CLI) vendorListCmd() *cobra.Command {
4343
}
4444
c.SetOutput("javaExecutable", javaExecutable)
4545

46-
vaultJar := c.aem.VendorManager().VaultCLI().JarFile()
47-
c.setOutput("vaultJar", vaultJar)
46+
vaultExecutable := c.aem.VendorManager().VaultCLI().VltFile()
47+
c.setOutput("vaultExecutable", vaultExecutable)
4848

4949
oakRunJar := c.aem.VendorManager().OakRun().JarFile()
5050
c.setOutput("oakRunJar", oakRunJar)

pkg/vault_cli.go

+15-15
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,13 @@ func (v VaultCLI) dir() string {
4040
return filepath.Join(v.vendorManager.aem.baseOpts.ToolDir, "vault-cli")
4141
}
4242

43-
func (v VaultCLI) execDir() string {
43+
func (v VaultCLI) VltFile() string {
4444
vaultDir, _, _ := strings.Cut(filepath.Base(v.DownloadURL), "-bin")
45-
return filepath.Join(v.dir(), vaultDir, "bin")
46-
}
47-
48-
func (v VaultCLI) JarFile() string {
49-
return "<path>/bin/vlt" // TODO c.aem.VaultCLI().JarFile()
45+
execDir := filepath.Join(v.dir(), vaultDir, "bin")
46+
if osx.IsWindows() {
47+
return pathx.Canonical(execDir + "/vlt.bat")
48+
}
49+
return pathx.Canonical(execDir + "/vlt")
5050
}
5151

5252
func (v VaultCLI) lock() osx.Lock[VaultCLILock] {
@@ -64,12 +64,10 @@ func (v VaultCLI) PrepareWithChanged() (bool, error) {
6464
return false, nil
6565
}
6666
log.Infof("preparing new Vault '%s'", v.DownloadURL)
67-
err = v.prepare()
68-
if err != nil {
67+
if err = v.prepare(); err != nil {
6968
return false, err
7069
}
71-
err = lock.Lock()
72-
if err != nil {
70+
if err = lock.Lock(); err != nil {
7371
return false, err
7472
}
7573
log.Infof("prepared new Vault '%s'", v.DownloadURL)
@@ -101,12 +99,14 @@ func (v VaultCLI) prepare() error {
10199
}
102100

103101
func (v VaultCLI) CommandShell(args []string) error {
104-
// TODO check if vault is prepared
105-
106-
cmd := execx.CommandShell(args)
107-
cmd.Dir = v.execDir() // TODO do not change dir, but prepend with absolute executable; so args should skip 'vlt'
102+
_, err := v.PrepareWithChanged()
103+
if err != nil {
104+
return fmt.Errorf("cannot prepare Vault before running command: %w", err)
105+
}
106+
vaultCliArgs := append([]string{v.VltFile()}, args...)
107+
cmd := execx.CommandShell(vaultCliArgs)
108108
v.vendorManager.aem.CommandOutput(cmd)
109-
if err := cmd.Run(); err != nil {
109+
if err = cmd.Run(); err != nil {
110110
return fmt.Errorf("cannot run Vault command: %w", err)
111111
}
112112
return nil

0 commit comments

Comments
 (0)