@@ -18,56 +18,55 @@ const (
18
18
)
19
19
20
20
type ContentManager struct {
21
- instance * Instance
21
+ aem * AEM
22
+ contentManager * content.Manager
23
+ vaultCli * VaultCli
22
24
}
23
25
24
- func NewContentManager (instance * Instance ) * ContentManager {
25
- return & ContentManager {instance : instance }
26
- }
27
-
28
- func (cm * ContentManager ) pkgMgr () * PackageManager {
29
- return cm .instance .PackageManager ()
30
- }
31
-
32
- func (cm * ContentManager ) contentManager () * content.Manager {
33
- return cm .instance .manager .aem .ContentManager ()
26
+ func NewContentManager (aem * AEM ) * ContentManager {
27
+ return & ContentManager {
28
+ aem : aem ,
29
+ contentManager : content .NewManager (aem .baseOpts ),
30
+ vaultCli : NewVaultCli (aem ),
31
+ }
34
32
}
35
33
36
- func (cm * ContentManager ) vaultCli () * VaultCli {
37
- return NewVaultCli (cm .instance .manager .aem )
38
- }
39
34
func (cm * ContentManager ) tmpDir () string {
40
- if cm .instance . manager . aem .Detached () {
35
+ if cm .aem .Detached () {
41
36
return os .TempDir ()
42
37
}
43
- return cm .instance .manager .aem .baseOpts .TmpDir
38
+ return cm .aem .baseOpts .TmpDir
39
+ }
40
+
41
+ func (cm * ContentManager ) Clean (path string ) error {
42
+ return cm .contentManager .Clean (path )
44
43
}
45
44
46
- func (cm * ContentManager ) pullContent (workDir string , vault bool , opts PackageCreateOpts ) error {
45
+ func (cm * ContentManager ) pullContent (instance * Instance , workDir string , vault bool , opts PackageCreateOpts ) error {
47
46
if vault {
48
47
if err := copyPackageAllFiles (workDir , opts ); err != nil {
49
48
return err
50
49
}
51
50
filterFile := filepath .Join (workDir , pkg .MetaPath , pkg .VltDir , FilterXML )
52
51
vaultCliArgs := []string {
53
52
"vlt" ,
54
- "--credentials" , fmt .Sprintf ("%s:%s" , cm . instance .user , cm . instance .password ),
53
+ "--credentials" , fmt .Sprintf ("%s:%s" , instance .user , instance .password ),
55
54
"checkout" ,
56
55
"--force" ,
57
56
"--filter" , filterFile ,
58
- fmt .Sprintf ("%s/crx/server/crx.default" , cm . instance .http .baseURL ),
57
+ fmt .Sprintf ("%s/crx/server/crx.default" , instance .http .baseURL ),
59
58
workDir ,
60
59
}
61
- if err := cm .vaultCli () .CommandShell (vaultCliArgs ); err != nil {
60
+ if err := cm .vaultCli .CommandShell (vaultCliArgs ); err != nil {
62
61
return err
63
62
}
64
- if err := cm .contentManager () .DeleteFiles (filepath .Join (workDir , content .JCRRoot )); err != nil {
63
+ if err := cm .contentManager .DeleteFiles (filepath .Join (workDir , content .JCRRoot )); err != nil {
65
64
return err
66
65
}
67
66
} else {
68
67
pkgFile := pathx .RandomFileName (cm .tmpDir (), "content_pull" , ".zip" )
69
68
defer func () { _ = pathx .DeleteIfExists (pkgFile ) }()
70
- if err := cm .downloadByPkgMgr (pkgFile , opts ); err != nil {
69
+ if err := cm .downloadByPkgMgr (instance , pkgFile , opts ); err != nil {
71
70
return err
72
71
}
73
72
if err := content .Unzip (pkgFile , workDir ); err != nil {
@@ -77,32 +76,32 @@ func (cm *ContentManager) pullContent(workDir string, vault bool, opts PackageCr
77
76
return nil
78
77
}
79
78
80
- func (cm * ContentManager ) downloadByPkgMgr (localFile string , opts PackageCreateOpts ) error {
81
- remotePath , err := cm . pkgMgr ().Create (opts )
82
- defer func () { _ = cm . pkgMgr ().Delete (remotePath ) }()
79
+ func (cm * ContentManager ) downloadByPkgMgr (instance * Instance , localFile string , opts PackageCreateOpts ) error {
80
+ remotePath , err := instance . PackageManager ().Create (opts )
81
+ defer func () { _ = instance . PackageManager ().Delete (remotePath ) }()
83
82
if err != nil {
84
83
return err
85
84
}
86
- if err = cm . pkgMgr ().Build (remotePath ); err != nil {
85
+ if err = instance . PackageManager ().Build (remotePath ); err != nil {
87
86
return err
88
87
}
89
- if err = cm . pkgMgr ().Download (remotePath , localFile ); err != nil {
88
+ if err = instance . PackageManager ().Download (remotePath , localFile ); err != nil {
90
89
return err
91
90
}
92
91
return nil
93
92
}
94
93
95
- func (cm * ContentManager ) Download (localFile string , clean bool , vault bool , opts PackageCreateOpts ) error {
94
+ func (cm * ContentManager ) Download (instance * Instance , localFile string , clean bool , vault bool , opts PackageCreateOpts ) error {
96
95
workDir := pathx .RandomDir (cm .tmpDir (), "content_download" )
97
96
defer func () { _ = pathx .DeleteIfExists (workDir ) }()
98
97
if ! clean && ! vault {
99
- return cm .downloadByPkgMgr (localFile , opts )
98
+ return cm .downloadByPkgMgr (instance , localFile , opts )
100
99
}
101
- if err := cm .pullContent (workDir , vault , opts ); err != nil {
100
+ if err := cm .pullContent (instance , workDir , vault , opts ); err != nil {
102
101
return err
103
102
}
104
103
if clean {
105
- if err := cm .contentManager () .Clean (filepath .Join (workDir , content .JCRRoot )); err != nil {
104
+ if err := cm .contentManager .Clean (filepath .Join (workDir , content .JCRRoot )); err != nil {
106
105
return err
107
106
}
108
107
}
@@ -112,14 +111,14 @@ func (cm *ContentManager) Download(localFile string, clean bool, vault bool, opt
112
111
return nil
113
112
}
114
113
115
- func (cm * ContentManager ) PullDir (dir string , clean bool , vault bool , replace bool , opts PackageCreateOpts ) error {
114
+ func (cm * ContentManager ) PullDir (instance * Instance , dir string , clean bool , vault bool , replace bool , opts PackageCreateOpts ) error {
116
115
workDir := pathx .RandomDir (cm .tmpDir (), "content_pull" )
117
116
defer func () { _ = pathx .DeleteIfExists (workDir ) }()
118
- if err := cm .pullContent (workDir , vault , opts ); err != nil {
117
+ if err := cm .pullContent (instance , workDir , vault , opts ); err != nil {
119
118
return err
120
119
}
121
120
if replace {
122
- if err := cm .contentManager () .DeleteFiles (dir ); err != nil {
121
+ if err := cm .contentManager .DeleteFiles (dir ); err != nil {
123
122
return err
124
123
}
125
124
}
@@ -128,22 +127,22 @@ func (cm *ContentManager) PullDir(dir string, clean bool, vault bool, replace bo
128
127
return err
129
128
}
130
129
if clean {
131
- if err := cm .contentManager () .Clean (dir ); err != nil {
130
+ if err := cm .contentManager .Clean (dir ); err != nil {
132
131
return err
133
132
}
134
133
}
135
134
return nil
136
135
}
137
136
138
- func (cm * ContentManager ) PullFile (file string , clean bool , vault bool , opts PackageCreateOpts ) error {
137
+ func (cm * ContentManager ) PullFile (instance * Instance , file string , clean bool , vault bool , opts PackageCreateOpts ) error {
139
138
workDir := pathx .RandomDir (cm .tmpDir (), "content_pull" )
140
139
defer func () { _ = pathx .DeleteIfExists (workDir ) }()
141
- if err := cm .pullContent (workDir , vault , opts ); err != nil {
140
+ if err := cm .pullContent (instance , workDir , vault , opts ); err != nil {
142
141
return err
143
142
}
144
143
syncFile := DetermineSyncFile (file )
145
144
if file != syncFile {
146
- if err := cm .contentManager () .DeleteFile (file , nil ); err != nil {
145
+ if err := cm .contentManager .DeleteFile (file , nil ); err != nil {
147
146
return err
148
147
}
149
148
}
@@ -152,41 +151,41 @@ func (cm *ContentManager) PullFile(file string, clean bool, vault bool, opts Pac
152
151
return err
153
152
}
154
153
if clean {
155
- if err := cm .contentManager () .Clean (syncFile ); err != nil {
154
+ if err := cm .contentManager .Clean (syncFile ); err != nil {
156
155
return err
157
156
}
158
157
}
159
158
return nil
160
159
}
161
160
162
- func (cm * ContentManager ) pushContent (destInstance * Instance , vault bool , opts PackageCreateOpts ) error {
161
+ func (cm * ContentManager ) pushContent (instance * Instance , vault bool , opts PackageCreateOpts ) error {
163
162
if vault {
164
163
mainDir , _ , _ := strings .Cut (opts .ContentPath , content .JCRRoot )
165
164
jcrPath := DetermineFilterRoot (opts .ContentPath )
166
165
vaultCliArgs := []string {
167
166
"vlt" ,
168
- "--credentials" , fmt .Sprintf ("%s:%s" , destInstance .user , destInstance .password ),
167
+ "--credentials" , fmt .Sprintf ("%s:%s" , instance .user , instance .password ),
169
168
"import" ,
170
- fmt .Sprintf ("%s/crx/-/jcr:root%s" , destInstance .http .baseURL , jcrPath ),
169
+ fmt .Sprintf ("%s/crx/-/jcr:root%s" , instance .http .baseURL , jcrPath ),
171
170
mainDir ,
172
171
}
173
- if err := cm .vaultCli () .CommandShell (vaultCliArgs ); err != nil {
172
+ if err := cm .vaultCli .CommandShell (vaultCliArgs ); err != nil {
174
173
return err
175
174
}
176
175
} else {
177
- remotePath , err := destInstance .PackageManager ().Create (opts )
178
- defer func () { _ = destInstance .PackageManager ().Delete (remotePath ) }()
176
+ remotePath , err := instance .PackageManager ().Create (opts )
177
+ defer func () { _ = instance .PackageManager ().Delete (remotePath ) }()
179
178
if err != nil {
180
179
return err
181
180
}
182
- if err = destInstance .PackageManager ().Install (remotePath ); err != nil {
181
+ if err = instance .PackageManager ().Install (remotePath ); err != nil {
183
182
return err
184
183
}
185
184
}
186
185
return nil
187
186
}
188
187
189
- func (cm * ContentManager ) Push (path string , clean bool , vault bool , opts PackageCreateOpts ) error {
188
+ func (cm * ContentManager ) Push (instance * Instance , path string , clean bool , vault bool , opts PackageCreateOpts ) error {
190
189
if ! pathx .Exists (path ) {
191
190
return fmt .Errorf ("cannot push content as it does not exist '%s'" , path )
192
191
}
@@ -197,37 +196,37 @@ func (cm *ContentManager) Push(path string, clean bool, vault bool, opts Package
197
196
return err
198
197
}
199
198
if clean {
200
- if err := cm .contentManager () .Clean (filepath .Join (workDir , content .JCRRoot )); err != nil {
199
+ if err := cm .contentManager .Clean (filepath .Join (workDir , content .JCRRoot )); err != nil {
201
200
return err
202
201
}
203
202
}
204
203
opts .ContentPath = filepath .Join (workDir , content .JCRRoot )
205
204
}
206
- if err := cm .pushContent (cm . instance , vault , opts ); err != nil {
205
+ if err := cm .pushContent (instance , vault , opts ); err != nil {
207
206
return err
208
207
}
209
208
return nil
210
209
}
211
210
212
- func (cm * ContentManager ) copyByPkgMgr (destInstance * Instance , clean bool , opts PackageCreateOpts ) error {
211
+ func (cm * ContentManager ) copyByPkgMgr (srcInstance * Instance , destInstance * Instance , clean bool , opts PackageCreateOpts ) error {
213
212
pkgFile := pathx .RandomFileName (cm .tmpDir (), "content_copy" , ".zip" )
214
213
defer func () { _ = pathx .DeleteIfExists (pkgFile ) }()
215
214
if clean {
216
215
workDir := pathx .RandomDir (cm .tmpDir (), "content_copy" )
217
216
defer func () { _ = pathx .DeleteIfExists (workDir ) }()
218
- if err := cm .pullContent (workDir , false , opts ); err != nil {
217
+ if err := cm .pullContent (srcInstance , workDir , false , opts ); err != nil {
219
218
return err
220
219
}
221
220
if clean {
222
- if err := cm .contentManager () .Clean (filepath .Join (workDir , content .JCRRoot )); err != nil {
221
+ if err := cm .contentManager .Clean (filepath .Join (workDir , content .JCRRoot )); err != nil {
223
222
return err
224
223
}
225
224
}
226
225
if err := content .Zip (workDir , pkgFile ); err != nil {
227
226
return err
228
227
}
229
228
} else {
230
- if err := cm .downloadByPkgMgr (pkgFile , opts ); err != nil {
229
+ if err := cm .downloadByPkgMgr (srcInstance , pkgFile , opts ); err != nil {
231
230
return err
232
231
}
233
232
}
@@ -242,15 +241,15 @@ func (cm *ContentManager) copyByPkgMgr(destInstance *Instance, clean bool, opts
242
241
return nil
243
242
}
244
243
245
- func (cm * ContentManager ) copyByVaultCli (destInstance * Instance , clean bool , rcpArgs string , opts PackageCreateOpts ) error {
244
+ func (cm * ContentManager ) copyByVaultCli (srcInstance * Instance , destInstance * Instance , clean bool , rcpArgs string , opts PackageCreateOpts ) error {
246
245
if clean || opts .FilterFile != "" {
247
246
workDir := pathx .RandomDir (cm .tmpDir (), "content_copy" )
248
247
defer func () { _ = pathx .DeleteIfExists (workDir ) }()
249
- if err := cm .pullContent (workDir , true , opts ); err != nil {
248
+ if err := cm .pullContent (srcInstance , workDir , true , opts ); err != nil {
250
249
return err
251
250
}
252
251
if clean {
253
- if err := cm .contentManager () .Clean (filepath .Join (workDir , content .JCRRoot )); err != nil {
252
+ if err := cm .contentManager .Clean (filepath .Join (workDir , content .JCRRoot )); err != nil {
254
253
return err
255
254
}
256
255
}
@@ -259,7 +258,7 @@ func (cm *ContentManager) copyByVaultCli(destInstance *Instance, clean bool, rcp
259
258
return err
260
259
}
261
260
} else {
262
- parsedURLSrc , err := url .Parse (cm . instance .http .baseURL )
261
+ parsedURLSrc , err := url .Parse (srcInstance .http .baseURL )
263
262
if err != nil {
264
263
return err
265
264
}
@@ -275,25 +274,25 @@ func (cm *ContentManager) copyByVaultCli(destInstance *Instance, clean bool, rcp
275
274
vaultCliArgs = append (vaultCliArgs , strings .Fields (rcpArgs )... )
276
275
vaultCliArgs = append (vaultCliArgs , []string {
277
276
fmt .Sprintf ("%s://%s:%s@%s/crx/-/jcr:root%s" ,
278
- parsedURLSrc .Scheme , cm . instance . user , cm . instance .password ,
277
+ parsedURLSrc .Scheme , srcInstance . user , srcInstance .password ,
279
278
parsedURLSrc .Host , filterRoot ),
280
279
fmt .Sprintf ("%s://%s:%s@%s/crx/-/jcr:root%s" ,
281
280
parsedURLDest .Scheme , destInstance .user , destInstance .password ,
282
281
parsedURLDest .Host , filterRoot ),
283
282
}... )
284
- if err = cm .vaultCli () .CommandShell (vaultCliArgs ); err != nil {
283
+ if err = cm .vaultCli .CommandShell (vaultCliArgs ); err != nil {
285
284
return err
286
285
}
287
286
}
288
287
}
289
288
return nil
290
289
}
291
290
292
- func (cm * ContentManager ) Copy (destInstance * Instance , clean bool , vault bool , rcpArgs string , opts PackageCreateOpts ) error {
291
+ func (cm * ContentManager ) Copy (srcInstance * Instance , destInstance * Instance , clean bool , vault bool , rcpArgs string , opts PackageCreateOpts ) error {
293
292
if vault {
294
- return cm .copyByVaultCli (destInstance , clean , rcpArgs , opts )
293
+ return cm .copyByVaultCli (srcInstance , destInstance , clean , rcpArgs , opts )
295
294
}
296
- return cm .copyByPkgMgr (destInstance , clean , opts )
295
+ return cm .copyByPkgMgr (srcInstance , destInstance , clean , opts )
297
296
}
298
297
299
298
func DetermineSyncFile (file string ) string {
0 commit comments