@@ -11,26 +11,27 @@ import (
11
11
"os"
12
12
"path/filepath"
13
13
"regexp"
14
+ "runtime"
14
15
"strings"
15
16
17
+ "github.com/AlecAivazis/survey/v2"
18
+ "github.com/defenseunicorns/pkg/helpers/v2"
19
+ "github.com/spf13/cobra"
20
+ "github.com/spf13/viper"
21
+ "oras.land/oras-go/v2/registry"
22
+
16
23
"github.com/zarf-dev/zarf/src/cmd/common"
24
+ "github.com/zarf-dev/zarf/src/config"
17
25
"github.com/zarf-dev/zarf/src/config/lang"
26
+ "github.com/zarf-dev/zarf/src/internal/dns"
18
27
"github.com/zarf-dev/zarf/src/internal/packager2"
28
+ "github.com/zarf-dev/zarf/src/pkg/cluster"
19
29
"github.com/zarf-dev/zarf/src/pkg/lint"
20
30
"github.com/zarf-dev/zarf/src/pkg/message"
31
+ "github.com/zarf-dev/zarf/src/pkg/packager"
21
32
"github.com/zarf-dev/zarf/src/pkg/packager/filters"
22
33
"github.com/zarf-dev/zarf/src/pkg/packager/sources"
23
34
"github.com/zarf-dev/zarf/src/types"
24
-
25
- "oras.land/oras-go/v2/registry"
26
-
27
- "github.com/AlecAivazis/survey/v2"
28
- "github.com/defenseunicorns/pkg/helpers/v2"
29
- "github.com/spf13/cobra"
30
- "github.com/spf13/viper"
31
- "github.com/zarf-dev/zarf/src/config"
32
- "github.com/zarf-dev/zarf/src/pkg/cluster"
33
- "github.com/zarf-dev/zarf/src/pkg/packager"
34
35
)
35
36
36
37
var packageCmd = & cobra.Command {
@@ -128,18 +129,30 @@ var packageMirrorCmd = &cobra.Command{
128
129
}
129
130
},
130
131
RunE : func (cmd * cobra.Command , args []string ) error {
131
- packageSource , err := choosePackage (args )
132
+ var c * cluster.Cluster
133
+ if dns .IsServiceURL (pkgConfig .InitOpts .RegistryInfo .Address ) || dns .IsServiceURL (pkgConfig .InitOpts .GitServer .Address ) {
134
+ var err error
135
+ c , err = cluster .NewCluster ()
136
+ if err != nil {
137
+ return err
138
+ }
139
+ }
140
+ src , err := choosePackage (args )
132
141
if err != nil {
133
142
return err
134
143
}
135
- pkgConfig .PkgOpts .PackageSource = packageSource
136
- pkgClient , err := packager .New (& pkgConfig )
144
+ filter := filters .Combine (
145
+ filters .ByLocalOS (runtime .GOOS ),
146
+ filters .BySelectState (pkgConfig .PkgOpts .OptionalComponents ),
147
+ )
148
+ pkgPaths , err := packager2 .LoadPackage (cmd .Context (), src , pkgConfig .PkgOpts .Shasum , pkgConfig .PkgOpts .PublicKeyPath , pkgConfig .PkgOpts .SkipSignatureValidation , filter )
137
149
if err != nil {
138
150
return err
139
151
}
140
- defer pkgClient .ClearTempPaths ()
141
- if err := pkgClient .Mirror (cmd .Context ()); err != nil {
142
- return fmt .Errorf ("failed to mirror package: %w" , err )
152
+ defer os .Remove (pkgPaths .Base )
153
+ err = packager2 .Mirror (cmd .Context (), c , * pkgPaths , filter , pkgConfig .InitOpts .RegistryInfo , pkgConfig .InitOpts .GitServer , pkgConfig .MirrorOpts .NoImgChecksum , pkgConfig .PkgOpts .Retries )
154
+ if err != nil {
155
+ return err
143
156
}
144
157
return nil
145
158
},
0 commit comments