@@ -40,13 +40,13 @@ func (v VaultCLI) dir() string {
40
40
return filepath .Join (v .vendorManager .aem .baseOpts .ToolDir , "vault-cli" )
41
41
}
42
42
43
- func (v VaultCLI ) execDir () string {
43
+ func (v VaultCLI ) VltFile () string {
44
44
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" )
50
50
}
51
51
52
52
func (v VaultCLI ) lock () osx.Lock [VaultCLILock ] {
@@ -64,12 +64,10 @@ func (v VaultCLI) PrepareWithChanged() (bool, error) {
64
64
return false , nil
65
65
}
66
66
log .Infof ("preparing new Vault '%s'" , v .DownloadURL )
67
- err = v .prepare ()
68
- if err != nil {
67
+ if err = v .prepare (); err != nil {
69
68
return false , err
70
69
}
71
- err = lock .Lock ()
72
- if err != nil {
70
+ if err = lock .Lock (); err != nil {
73
71
return false , err
74
72
}
75
73
log .Infof ("prepared new Vault '%s'" , v .DownloadURL )
@@ -101,12 +99,14 @@ func (v VaultCLI) prepare() error {
101
99
}
102
100
103
101
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 )
108
108
v .vendorManager .aem .CommandOutput (cmd )
109
- if err : = cmd .Run (); err != nil {
109
+ if err = cmd .Run (); err != nil {
110
110
return fmt .Errorf ("cannot run Vault command: %w" , err )
111
111
}
112
112
return nil
0 commit comments