mirror of
https://github.com/containers/podman.git
synced 2025-05-25 19:16:59 +08:00
55 lines
1.8 KiB
Go
55 lines
1.8 KiB
Go
package common
|
|
|
|
import (
|
|
"io"
|
|
|
|
cp "github.com/containers/image/copy"
|
|
"github.com/containers/image/types"
|
|
)
|
|
|
|
// GetCopyOptions constructs a new containers/image/copy.Options{} struct from the given parameters
|
|
func GetCopyOptions(reportWriter io.Writer, signaturePolicyPath string, srcDockerRegistry, destDockerRegistry *DockerRegistryOptions, signing SigningOptions, authFile, manifestType string, forceCompress bool) *cp.Options {
|
|
if srcDockerRegistry == nil {
|
|
srcDockerRegistry = &DockerRegistryOptions{}
|
|
}
|
|
if destDockerRegistry == nil {
|
|
destDockerRegistry = &DockerRegistryOptions{}
|
|
}
|
|
srcContext := srcDockerRegistry.GetSystemContext(signaturePolicyPath, authFile, forceCompress)
|
|
destContext := destDockerRegistry.GetSystemContext(signaturePolicyPath, authFile, forceCompress)
|
|
return &cp.Options{
|
|
RemoveSignatures: signing.RemoveSignatures,
|
|
SignBy: signing.SignBy,
|
|
ReportWriter: reportWriter,
|
|
SourceCtx: srcContext,
|
|
DestinationCtx: destContext,
|
|
ForceManifestMIMEType: manifestType,
|
|
}
|
|
}
|
|
|
|
// GetSystemContext Constructs a new containers/image/types.SystemContext{} struct from the given signaturePolicy path
|
|
func GetSystemContext(signaturePolicyPath, authFilePath string, forceCompress bool) *types.SystemContext {
|
|
sc := &types.SystemContext{}
|
|
if signaturePolicyPath != "" {
|
|
sc.SignaturePolicyPath = signaturePolicyPath
|
|
}
|
|
sc.AuthFilePath = authFilePath
|
|
sc.DirForceCompress = forceCompress
|
|
return sc
|
|
}
|
|
|
|
// IsTrue determines whether the given string equals "true"
|
|
func IsTrue(str string) bool {
|
|
return str == "true"
|
|
}
|
|
|
|
// IsFalse determines whether the given string equals "false"
|
|
func IsFalse(str string) bool {
|
|
return str == "false"
|
|
}
|
|
|
|
// IsValidBool determines whether the given string equals "true" or "false"
|
|
func IsValidBool(str string) bool {
|
|
return IsTrue(str) || IsFalse(str)
|
|
}
|