Skip to content

Commit

Permalink
added store env var (#370)
Browse files Browse the repository at this point in the history
* added strictmode flag and consts
* updated code with strictmode
* added flag for retryoperation
* updated registry short flag
* added store env var
* added/fixed more env var code

---------

Signed-off-by: Zack Brady <[email protected]>
  • Loading branch information
zackbradys authored Dec 4, 2024
1 parent 4270a27 commit 235218c
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 7 deletions.
14 changes: 12 additions & 2 deletions cmd/hauler/cli/store/load.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,19 @@ import (
func LoadCmd(ctx context.Context, o *flags.LoadOpts, archiveRefs ...string) error {
l := log.FromContext(ctx)

storeDir := o.StoreDir

if storeDir == "" {
storeDir = os.Getenv(consts.HaulerStoreDir)
}

if storeDir == "" {
storeDir = consts.DefaultStoreName
}

for _, archiveRef := range archiveRefs {
l.Infof("loading content from [%s] to [%s]", archiveRef, o.StoreDir)
err := unarchiveLayoutTo(ctx, archiveRef, o.StoreDir, o.TempOverride)
l.Infof("loading content from [%s] to [%s]", archiveRef, storeDir)
err := unarchiveLayoutTo(ctx, archiveRef, storeDir, o.TempOverride)
if err != nil {
return err
}
Expand Down
14 changes: 12 additions & 2 deletions cmd/hauler/cli/store/save.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,16 @@ import (
func SaveCmd(ctx context.Context, o *flags.SaveOpts, outputFile string) error {
l := log.FromContext(ctx)

storeDir := o.StoreDir

if storeDir == "" {
storeDir = os.Getenv(consts.HaulerStoreDir)
}

if storeDir == "" {
storeDir = consts.DefaultStoreName
}

// TODO: Support more formats?
a := archiver.NewTarZstd()
a.OverwriteExisting = true
Expand All @@ -42,7 +52,7 @@ func SaveCmd(ctx context.Context, o *flags.SaveOpts, outputFile string) error {
return err
}
defer os.Chdir(cwd)
if err := os.Chdir(o.StoreDir); err != nil {
if err := os.Chdir(storeDir); err != nil {
return err
}

Expand All @@ -55,7 +65,7 @@ func SaveCmd(ctx context.Context, o *flags.SaveOpts, outputFile string) error {
return err
}

l.Infof("saved store [%s] -> [%s]", o.StoreDir, absOutputfile)
l.Infof("saved store [%s] -> [%s]", storeDir, absOutputfile)
return nil
}

Expand Down
13 changes: 10 additions & 3 deletions internal/flags/store.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ type StoreRootOpts struct {

func (o *StoreRootOpts) AddFlags(cmd *cobra.Command) {
pf := cmd.PersistentFlags()
pf.StringVarP(&o.StoreDir, "store", "s", consts.DefaultStoreName, "Set the directory to use for the content store")
pf.StringVarP(&o.StoreDir, "store", "s", "", "Set the directory to use for the content store")
pf.IntVarP(&o.Retries, "retries", "r", consts.DefaultRetries, "Set the number of retries for operations")
}

Expand All @@ -28,6 +28,14 @@ func (o *StoreRootOpts) Store(ctx context.Context) (*store.Layout, error) {

storeDir := o.StoreDir

if storeDir == "" {
storeDir = os.Getenv(consts.HaulerStoreDir)
}

if storeDir == "" {
storeDir = consts.DefaultStoreName
}

abs, err := filepath.Abs(storeDir)
if err != nil {
return nil, err
Expand All @@ -36,8 +44,7 @@ func (o *StoreRootOpts) Store(ctx context.Context) (*store.Layout, error) {
l.Debugf("using store at %s", abs)

if _, err := os.Stat(abs); errors.Is(err, os.ErrNotExist) {
err := os.Mkdir(abs, os.ModePerm)
if err != nil {
if err := os.MkdirAll(abs, os.ModePerm); err != nil {
return nil, err
}
} else if err != nil {
Expand Down
1 change: 1 addition & 0 deletions pkg/consts/consts.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ const (
// environment variables
HaulerDir = "HAULER_DIR"
HaulerTempDir = "HAULER_TEMP_DIR"
HaulerStoreDir = "HAULER_STORE_DIR"
HaulerIgnoreErrors = "HAULER_IGNORE_ERRORS"

// container files and directories
Expand Down
1 change: 1 addition & 0 deletions pkg/cosign/cosign.go
Original file line number Diff line number Diff line change
Expand Up @@ -277,6 +277,7 @@ func EnsureBinaryExists(ctx context.Context, bin embed.FS, ro *flags.CliRootOpts

// getCosignPath returns the binary path
func getCosignPath(haulerDir string) (string, error) {

if haulerDir == "" {
haulerDir = os.Getenv(consts.HaulerDir)
}
Expand Down

0 comments on commit 235218c

Please sign in to comment.