Skip to content

Commit f6adf2c

Browse files
author
Dominik Przybyl
committed
removed Vault-Cli from content commands
1 parent 70e5c70 commit f6adf2c

File tree

5 files changed

+88
-187
lines changed

5 files changed

+88
-187
lines changed

cmd/aem/content.go

+9-15
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,7 @@ func (c *CLI) contentDownloadCmd() *cobra.Command {
8484
filterRoots := determineFilterRoots(cmd)
8585
filterFile, _ := cmd.Flags().GetString("filter-file")
8686
clean, _ := cmd.Flags().GetBool("clean")
87-
vault, _ := cmd.Flags().GetBool("vault")
88-
if err = c.aem.ContentManager().Download(instance, targetFile, clean, vault, pkg.PackageCreateOpts{
87+
if err = c.aem.ContentManager().Download(instance, targetFile, clean, pkg.PackageCreateOpts{
8988
PID: pid,
9089
FilterRoots: filterRoots,
9190
FilterFile: filterFile,
@@ -104,7 +103,6 @@ func (c *CLI) contentDownloadCmd() *cobra.Command {
104103
cmd.Flags().StringP("filter-file", "f", "", "Vault filter file path")
105104
cmd.MarkFlagsOneRequired("filter-roots", "filter-file")
106105
cmd.Flags().Bool("clean", false, "Normalize content after downloading")
107-
cmd.Flags().Bool("vault", false, "Use Vault-Cli to download content")
108106
return cmd
109107
}
110108

@@ -133,10 +131,9 @@ func (c *CLI) contentPullCmd() *cobra.Command {
133131
filterFile, _ := cmd.Flags().GetString("filter-file")
134132
excludePatterns := determineExcludePatterns(cmd)
135133
clean, _ := cmd.Flags().GetBool("clean")
136-
vault, _ := cmd.Flags().GetBool("vault")
137134
replace, _ := cmd.Flags().GetBool("replace")
138135
if dir != "" {
139-
if err = c.aem.ContentManager().PullDir(instance, dir, clean, vault, replace, pkg.PackageCreateOpts{
136+
if err = c.aem.ContentManager().PullDir(instance, dir, clean, replace, pkg.PackageCreateOpts{
140137
PID: fmt.Sprintf("aemc:content-pull:%s-SNAPSHOT", timex.FileTimestampForNow()),
141138
FilterRoots: filterRoots,
142139
FilterFile: filterFile,
@@ -146,7 +143,7 @@ func (c *CLI) contentPullCmd() *cobra.Command {
146143
}
147144
c.SetOutput("dir", dir)
148145
} else if file != "" {
149-
if err = c.aem.ContentManager().PullFile(instance, file, clean, vault, pkg.PackageCreateOpts{
146+
if err = c.aem.ContentManager().PullFile(instance, file, clean, pkg.PackageCreateOpts{
150147
PID: fmt.Sprintf("aemc:content-pull:%s-SNAPSHOT", timex.FileTimestampForNow()),
151148
FilterRoots: filterRoots,
152149
ExcludePatterns: excludePatterns,
@@ -167,7 +164,6 @@ func (c *CLI) contentPullCmd() *cobra.Command {
167164
cmd.Flags().StringP("filter-file", "f", "", "Vault filter file path")
168165
cmd.MarkFlagsMutuallyExclusive("filter-roots", "filter-file")
169166
cmd.Flags().Bool("clean", false, "Normalize content after downloading")
170-
cmd.Flags().Bool("vault", false, "Use Vault-Cli to download content")
171167
cmd.Flags().Bool("replace", false, "Replace content after downloading")
172168
return cmd
173169
}
@@ -197,11 +193,14 @@ func (c *CLI) contentPushCmd() *cobra.Command {
197193
if path == "" {
198194
path = file
199195
}
196+
if !pathx.Exists(path) {
197+
c.Error(fmt.Errorf("cannot push content as it does not exist '%s'", path))
198+
return
199+
}
200200
filterRoots := determineFilterRoots(cmd)
201201
excludePatterns := determineExcludePatterns(cmd)
202202
clean, _ := cmd.Flags().GetBool("clean")
203-
vault, _ := cmd.Flags().GetBool("vault")
204-
if err = c.aem.ContentManager().Push(instances, path, clean, vault, pkg.PackageCreateOpts{
203+
if err = c.aem.ContentManager().Push(instances, clean, pkg.PackageCreateOpts{
205204
PID: fmt.Sprintf("aemc:content-push:%s-SNAPSHOT", timex.FileTimestampForNow()),
206205
FilterRoots: filterRoots,
207206
ExcludePatterns: excludePatterns,
@@ -223,7 +222,6 @@ func (c *CLI) contentPushCmd() *cobra.Command {
223222
cmd.Flags().StringP("path", "p", "", "JCR root path or local file path")
224223
cmd.MarkFlagsOneRequired("dir", "file", "path")
225224
cmd.Flags().Bool("clean", false, "Normalize content while uploading")
226-
cmd.Flags().Bool("vault", false, "Use Vault-Cli to upload content")
227225
return cmd
228226
}
229227

@@ -246,9 +244,7 @@ func (c *CLI) contentCopyCmd() *cobra.Command {
246244
filterRoots := determineFilterRoots(cmd)
247245
filterFile, _ := cmd.Flags().GetString("filter-file")
248246
clean, _ := cmd.Flags().GetBool("clean")
249-
vault, _ := cmd.Flags().GetBool("vault")
250-
rcpArgs, _ := cmd.Flags().GetString("rcp-args")
251-
if err = c.aem.ContentManager().Copy(instance, targetInstances, clean, vault, rcpArgs, pkg.PackageCreateOpts{
247+
if err = c.aem.ContentManager().Copy(instance, targetInstances, clean, pkg.PackageCreateOpts{
252248
PID: fmt.Sprintf("aemc:content-copy:%s-SNAPSHOT", timex.FileTimestampForNow()),
253249
FilterRoots: filterRoots,
254250
FilterFile: filterFile,
@@ -266,8 +262,6 @@ func (c *CLI) contentCopyCmd() *cobra.Command {
266262
cmd.Flags().StringP("filter-file", "f", "", "Vault filter file path")
267263
cmd.MarkFlagsOneRequired("filter-roots", "filter-file")
268264
cmd.Flags().Bool("clean", false, "Normalize content while copying")
269-
cmd.Flags().Bool("vault", false, "Use Vault-Cli to copy content")
270-
cmd.Flags().String("rcp-args", "", "Override RCP arguments when copying via Vault-Cli")
271265
return cmd
272266
}
273267

cmd/aem/root.go

+1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ func (c *CLI) rootCmd() *cobra.Command {
3333
cmd.AddCommand(c.fileCmd())
3434
cmd.AddCommand(c.authCmd())
3535
cmd.AddCommand(c.contentCmd())
36+
cmd.AddCommand(c.vaultCmd())
3637
c.rootFlags(cmd)
3738
return cmd
3839
}

cmd/aem/vault.go

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package main
2+
3+
import (
4+
"github.com/spf13/cobra"
5+
"github.com/wttech/aemc/pkg"
6+
"os"
7+
)
8+
9+
func (c *CLI) vaultCmd() *cobra.Command {
10+
cmd := &cobra.Command{
11+
Use: "vlt",
12+
Short: "Executes Vault-Cli commands",
13+
Run: func(cmd *cobra.Command, args []string) {
14+
vaultCli := pkg.NewVaultCli(c.aem)
15+
vaultCliArgs := os.Args[1:]
16+
_ = vaultCli.CommandShell(vaultCliArgs)
17+
},
18+
Args: cobra.ArbitraryArgs,
19+
FParseErrWhitelist: cobra.FParseErrWhitelist{
20+
UnknownFlags: true,
21+
},
22+
}
23+
cmd.SetHelpFunc(func(cmd *cobra.Command, args []string) {
24+
aem := pkg.NewAEM(c.config)
25+
vaultCli := pkg.NewVaultCli(aem)
26+
_ = vaultCli.CommandShell(args)
27+
})
28+
return cmd
29+
}

pkg/content_manager.go

+49-125
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
package pkg
22

33
import (
4-
"fmt"
54
"github.com/wttech/aemc/pkg/common/filex"
65
"github.com/wttech/aemc/pkg/common/pathx"
76
"github.com/wttech/aemc/pkg/content"
8-
"github.com/wttech/aemc/pkg/pkg"
97
"os"
108
"path/filepath"
119
"regexp"
@@ -19,14 +17,12 @@ const (
1917
type ContentManager struct {
2018
aem *AEM
2119
contentManager *content.Manager
22-
vaultCli *VaultCli
2320
}
2421

2522
func NewContentManager(aem *AEM) *ContentManager {
2623
return &ContentManager{
2724
aem: aem,
2825
contentManager: content.NewManager(aem.baseOpts),
29-
vaultCli: NewVaultCli(aem),
3026
}
3127
}
3228

@@ -41,27 +37,14 @@ func (cm *ContentManager) Clean(path string) error {
4137
return cm.contentManager.Clean(path)
4238
}
4339

44-
func (cm *ContentManager) pullContent(instance *Instance, workDir string, vault bool, opts PackageCreateOpts) error {
45-
if vault {
46-
if err := copyPackageAllFiles(workDir, opts); err != nil {
47-
return err
48-
}
49-
filterFile := filepath.Join(workDir, pkg.MetaPath, pkg.VltDir, FilterXML)
50-
if err := cm.vaultCli.PullContent(instance, workDir, filterFile); err != nil {
51-
return err
52-
}
53-
if err := cm.contentManager.DeleteFiles(filepath.Join(workDir, content.JCRRoot)); err != nil {
54-
return err
55-
}
56-
} else {
57-
pkgFile := pathx.RandomFileName(cm.tmpDir(), "content_pull", ".zip")
58-
defer func() { _ = pathx.DeleteIfExists(pkgFile) }()
59-
if err := cm.downloadByPkgMgr(instance, pkgFile, opts); err != nil {
60-
return err
61-
}
62-
if err := content.Unzip(pkgFile, workDir); err != nil {
63-
return err
64-
}
40+
func (cm *ContentManager) pullContent(instance *Instance, workDir string, opts PackageCreateOpts) error {
41+
pkgFile := pathx.RandomFileName(cm.tmpDir(), "content_pull", ".zip")
42+
defer func() { _ = pathx.DeleteIfExists(pkgFile) }()
43+
if err := cm.downloadByPkgMgr(instance, pkgFile, opts); err != nil {
44+
return err
45+
}
46+
if err := content.Unzip(pkgFile, workDir); err != nil {
47+
return err
6548
}
6649
return nil
6750
}
@@ -81,30 +64,31 @@ func (cm *ContentManager) downloadByPkgMgr(instance *Instance, localFile string,
8164
return nil
8265
}
8366

84-
func (cm *ContentManager) Download(instance *Instance, localFile string, clean bool, vault bool, opts PackageCreateOpts) error {
67+
func (cm *ContentManager) Download(instance *Instance, localFile string, clean bool, opts PackageCreateOpts) error {
8568
workDir := pathx.RandomDir(cm.tmpDir(), "content_download")
8669
defer func() { _ = pathx.DeleteIfExists(workDir) }()
87-
if !clean && !vault {
88-
return cm.downloadByPkgMgr(instance, localFile, opts)
89-
}
90-
if err := cm.pullContent(instance, workDir, vault, opts); err != nil {
91-
return err
92-
}
9370
if clean {
71+
if err := cm.pullContent(instance, workDir, opts); err != nil {
72+
return err
73+
}
9474
if err := cm.contentManager.Clean(filepath.Join(workDir, content.JCRRoot)); err != nil {
9575
return err
9676
}
97-
}
98-
if err := content.Zip(workDir, localFile); err != nil {
99-
return err
77+
if err := content.Zip(workDir, localFile); err != nil {
78+
return err
79+
}
80+
} else {
81+
if err := cm.downloadByPkgMgr(instance, localFile, opts); err != nil {
82+
return err
83+
}
10084
}
10185
return nil
10286
}
10387

104-
func (cm *ContentManager) PullDir(instance *Instance, dir string, clean bool, vault bool, replace bool, opts PackageCreateOpts) error {
88+
func (cm *ContentManager) PullDir(instance *Instance, dir string, clean bool, replace bool, opts PackageCreateOpts) error {
10589
workDir := pathx.RandomDir(cm.tmpDir(), "content_pull")
10690
defer func() { _ = pathx.DeleteIfExists(workDir) }()
107-
if err := cm.pullContent(instance, workDir, vault, opts); err != nil {
91+
if err := cm.pullContent(instance, workDir, opts); err != nil {
10892
return err
10993
}
11094
if replace {
@@ -124,10 +108,10 @@ func (cm *ContentManager) PullDir(instance *Instance, dir string, clean bool, va
124108
return nil
125109
}
126110

127-
func (cm *ContentManager) PullFile(instance *Instance, file string, clean bool, vault bool, opts PackageCreateOpts) error {
111+
func (cm *ContentManager) PullFile(instance *Instance, file string, clean bool, opts PackageCreateOpts) error {
128112
workDir := pathx.RandomDir(cm.tmpDir(), "content_pull")
129113
defer func() { _ = pathx.DeleteIfExists(workDir) }()
130-
if err := cm.pullContent(instance, workDir, vault, opts); err != nil {
114+
if err := cm.pullContent(instance, workDir, opts); err != nil {
131115
return err
132116
}
133117
syncFile := DetermineSyncFile(file)
@@ -148,23 +132,15 @@ func (cm *ContentManager) PullFile(instance *Instance, file string, clean bool,
148132
return nil
149133
}
150134

151-
func (cm *ContentManager) pushContent(instances []Instance, vault bool, opts PackageCreateOpts) error {
135+
func (cm *ContentManager) pushContent(instances []Instance, pkgFile string) error {
152136
_, err := InstanceProcess(cm.aem, instances, func(instance Instance) (any, error) {
153-
if vault {
154-
mainDir, _, _ := strings.Cut(opts.ContentPath, content.JCRRoot)
155-
jcrPath := DetermineFilterRoot(opts.ContentPath)
156-
if err := cm.vaultCli.PushContent(&instance, mainDir, jcrPath); err != nil {
157-
return nil, err
158-
}
159-
} else {
160-
remotePath, err := instance.PackageManager().Create(opts)
161-
defer func() { _ = instance.PackageManager().Delete(remotePath) }()
162-
if err != nil {
163-
return nil, err
164-
}
165-
if err = instance.PackageManager().Install(remotePath); err != nil {
166-
return nil, err
167-
}
137+
remotePath, err := instance.PackageManager().Upload(pkgFile)
138+
defer func() { _ = instance.PackageManager().Delete(remotePath) }()
139+
if err != nil {
140+
return nil, err
141+
}
142+
if err = instance.PackageManager().Install(remotePath); err != nil {
143+
return nil, err
168144
}
169145
return nil, nil
170146
})
@@ -174,94 +150,42 @@ func (cm *ContentManager) pushContent(instances []Instance, vault bool, opts Pac
174150
return nil
175151
}
176152

177-
func (cm *ContentManager) Push(instances []Instance, path string, clean bool, vault bool, opts PackageCreateOpts) error {
178-
if !pathx.Exists(path) {
179-
return fmt.Errorf("cannot push content as it does not exist '%s'", path)
180-
}
153+
func (cm *ContentManager) Push(instances []Instance, clean bool, opts PackageCreateOpts) error {
181154
workDir := pathx.RandomDir(cm.tmpDir(), "content_push")
182-
defer func() { _ = pathx.DeleteIfExists(workDir) }()
183-
if clean || vault && pathx.IsFile(path) {
184-
if err := copyPackageAllFiles(workDir, opts); err != nil {
155+
pkgFile := pathx.RandomFileName(cm.tmpDir(), "content_push", ".zip")
156+
defer func() {
157+
_ = pathx.DeleteIfExists(workDir)
158+
_ = pathx.DeleteIfExists(pkgFile)
159+
}()
160+
if err := copyPackageAllFiles(workDir, opts); err != nil {
161+
return err
162+
}
163+
if clean {
164+
if err := cm.contentManager.Clean(filepath.Join(workDir, content.JCRRoot)); err != nil {
185165
return err
186166
}
187-
if clean {
188-
if err := cm.contentManager.Clean(filepath.Join(workDir, content.JCRRoot)); err != nil {
189-
return err
190-
}
191-
}
192-
opts.ContentPath = filepath.Join(workDir, content.JCRRoot)
193167
}
194-
if err := cm.pushContent(instances, vault, opts); err != nil {
168+
if err := content.Zip(workDir, pkgFile); err != nil {
169+
return err
170+
}
171+
if err := cm.pushContent(instances, pkgFile); err != nil {
195172
return err
196173
}
197174
return nil
198175
}
199176

200-
func (cm *ContentManager) copyByPkgMgr(srcInstance *Instance, destInstances []Instance, clean bool, opts PackageCreateOpts) error {
177+
func (cm *ContentManager) Copy(srcInstance *Instance, destInstances []Instance, clean bool, opts PackageCreateOpts) error {
201178
pkgFile := pathx.RandomFileName(cm.tmpDir(), "content_copy", ".zip")
202179
defer func() { _ = pathx.DeleteIfExists(pkgFile) }()
203-
if err := cm.Download(srcInstance, pkgFile, clean, false, opts); err != nil {
180+
if err := cm.Download(srcInstance, pkgFile, clean, opts); err != nil {
204181
return err
205182
}
206-
_, err := InstanceProcess(cm.aem, destInstances, func(destInstance Instance) (any, error) {
207-
remotePath, err := destInstance.PackageManager().Upload(pkgFile)
208-
defer func() { _ = destInstance.PackageManager().Delete(remotePath) }()
209-
if err != nil {
210-
return nil, err
211-
}
212-
if err = destInstance.PackageManager().Install(remotePath); err != nil {
213-
return nil, err
214-
}
215-
return nil, err
216-
})
217-
if err != nil {
183+
if err := cm.pushContent(destInstances, pkgFile); err != nil {
218184
return err
219185
}
220186
return nil
221187
}
222188

223-
func (cm *ContentManager) copyByVaultCli(srcInstance *Instance, destInstances []Instance, clean bool, rcpArgs string, opts PackageCreateOpts) error {
224-
if clean || opts.FilterFile != "" {
225-
workDir := pathx.RandomDir(cm.tmpDir(), "content_copy")
226-
defer func() { _ = pathx.DeleteIfExists(workDir) }()
227-
if err := cm.pullContent(srcInstance, workDir, true, opts); err != nil {
228-
return err
229-
}
230-
if clean {
231-
if err := cm.contentManager.Clean(filepath.Join(workDir, content.JCRRoot)); err != nil {
232-
return err
233-
}
234-
}
235-
opts.ContentPath = filepath.Join(workDir, content.JCRRoot)
236-
if err := cm.pushContent(destInstances, true, opts); err != nil {
237-
return err
238-
}
239-
} else {
240-
if rcpArgs == "" {
241-
rcpArgs = "-b 100 -r -u"
242-
}
243-
_, err := InstanceProcess(cm.aem, destInstances, func(destInstance Instance) (any, error) {
244-
for _, filterRoot := range opts.FilterRoots {
245-
if err := cm.vaultCli.CopyContent(srcInstance, &destInstance, strings.Fields(rcpArgs), filterRoot); err != nil {
246-
return nil, err
247-
}
248-
}
249-
return nil, nil
250-
})
251-
if err != nil {
252-
return err
253-
}
254-
}
255-
return nil
256-
}
257-
258-
func (cm *ContentManager) Copy(srcInstance *Instance, destInstances []Instance, clean bool, vault bool, rcpArgs string, opts PackageCreateOpts) error {
259-
if vault {
260-
return cm.copyByVaultCli(srcInstance, destInstances, clean, rcpArgs, opts)
261-
}
262-
return cm.copyByPkgMgr(srcInstance, destInstances, clean, opts)
263-
}
264-
265189
func DetermineSyncFile(file string) string {
266190
if regexp.MustCompile(FlattenFilePattern).MatchString(file) {
267191
return filepath.Join(strings.ReplaceAll(file, content.XmlFileSuffix, ""), content.JCRContentFile)

0 commit comments

Comments
 (0)