Skip to content

Commit a04647a

Browse files
committed
Fixed issue preventing fallback and metadata files from being saved in DOPPER_CONFIG_DIR
1 parent 55dce35 commit a04647a

File tree

3 files changed

+18
-17
lines changed

3 files changed

+18
-17
lines changed

pkg/cmd/run.go

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,6 @@ import (
3838
"github.com/spf13/cobra"
3939
)
4040

41-
var defaultFallbackDir string
42-
4341
const defaultFallbackFileMaxAge = 14 * 24 * time.Hour // 14 days
4442
const defaultLivenessPingIntervalSeconds = 60 * 5 * time.Second
4543

@@ -445,9 +443,9 @@ var runCleanCmd = &cobra.Command{
445443
dryRun := utils.GetBoolFlag(cmd, "dry-run")
446444
all := utils.GetBoolFlag(cmd, "all")
447445

448-
utils.LogDebug(fmt.Sprintf("Using fallback directory %s", defaultFallbackDir))
446+
utils.LogDebug(fmt.Sprintf("Using fallback directory %s", configuration.UserFallbackDir))
449447

450-
if _, err := os.Stat(defaultFallbackDir); err != nil {
448+
if _, err := os.Stat(configuration.UserFallbackDir); err != nil {
451449
if os.IsNotExist(err) {
452450
utils.LogDebug("Fallback directory does not exist")
453451
utils.Print("Nothing to clean")
@@ -457,7 +455,7 @@ var runCleanCmd = &cobra.Command{
457455
utils.HandleError(err, "Unable to read fallback directory")
458456
}
459457

460-
entries, err := ioutil.ReadDir(defaultFallbackDir)
458+
entries, err := ioutil.ReadDir(configuration.UserFallbackDir)
461459
if err != nil {
462460
utils.HandleError(err, "Unable to read fallback directory")
463461
}
@@ -486,7 +484,7 @@ var runCleanCmd = &cobra.Command{
486484
}
487485

488486
if delete {
489-
file := filepath.Join(defaultFallbackDir, entry.Name())
487+
file := filepath.Join(configuration.UserFallbackDir, entry.Name())
490488
utils.LogDebug(fmt.Sprintf("%s %s", action, file))
491489

492490
if dryRun {
@@ -517,7 +515,7 @@ var runCleanCmd = &cobra.Command{
517515
func legacyFallbackFile(project string, config string) string {
518516
name := fmt.Sprintf("%s:%s", project, config)
519517
fileName := fmt.Sprintf(".run-%s.json", crypto.Hash(name))
520-
return filepath.Join(defaultFallbackDir, fileName)
518+
return filepath.Join(configuration.UserFallbackDir, fileName)
521519
}
522520

523521
// generate the passphrase used for encrypting a secrets file
@@ -552,15 +550,15 @@ func initFallbackDir(cmd *cobra.Command, config models.ScopedOptions, format mod
552550
}
553551
} else {
554552
fallbackFileName := fmt.Sprintf(".secrets-%s.json", controllers.GenerateFallbackFileHash(config.Token.Value, config.EnclaveProject.Value, config.EnclaveConfig.Value, format, nameTransformer, secretNames))
555-
fallbackPath = filepath.Join(defaultFallbackDir, fallbackFileName)
553+
fallbackPath = filepath.Join(configuration.UserFallbackDir, fallbackFileName)
556554
// TODO remove this when releasing CLI v4 (DPLR-435)
557555
if config.EnclaveProject.Value != "" && config.EnclaveConfig.Value != "" {
558556
// save to old path to maintain backwards compatibility
559557
legacyFallbackPath = legacyFallbackFile(config.EnclaveProject.Value, config.EnclaveConfig.Value)
560558
}
561559

562-
if !utils.Exists(defaultFallbackDir) {
563-
err := os.Mkdir(defaultFallbackDir, 0700)
560+
if !utils.Exists(configuration.UserFallbackDir) {
561+
err := os.Mkdir(configuration.UserFallbackDir, 0700)
564562
if err != nil {
565563
utils.LogDebug("Unable to create directory for fallback file")
566564
if exitOnWriteFailure {
@@ -584,9 +582,6 @@ func initFallbackDir(cmd *cobra.Command, config models.ScopedOptions, format mod
584582
}
585583

586584
func init() {
587-
defaultFallbackDir = filepath.Join(configuration.UserConfigDir, "fallback")
588-
controllers.DefaultMetadataDir = defaultFallbackDir
589-
590585
forwardSignals := !isatty.IsTerminal(os.Stdout.Fd())
591586

592587
runCmd.Flags().StringP("project", "p", "", "project (e.g. backend)")

pkg/configuration/config.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,12 @@ var UserConfigDir string
3737
// UserConfigFile (e.g. /home/user/doppler/.doppler.yaml)
3838
var UserConfigFile string
3939

40+
// UserFallbackDir (e.g. /home/user/doppler/.doppler.yaml)
41+
var UserFallbackDir string
42+
43+
// UserMetadataDir the directory containing metadata files
44+
var UserMetadataDir string
45+
4046
// Scope to use for config file
4147
var Scope = "."
4248

@@ -54,6 +60,8 @@ func init() {
5460

5561
func SetConfigDir(dir string) {
5662
UserConfigDir = dir
63+
UserFallbackDir = filepath.Join(dir, "fallback")
64+
UserMetadataDir = UserFallbackDir
5765
UserConfigFile = filepath.Join(UserConfigDir, configFileName)
5866
}
5967

pkg/controllers/fallback.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,13 @@ import (
2424
"sort"
2525
"strings"
2626

27+
"github.com/DopplerHQ/cli/pkg/configuration"
2728
"github.com/DopplerHQ/cli/pkg/crypto"
2829
"github.com/DopplerHQ/cli/pkg/models"
2930
"github.com/DopplerHQ/cli/pkg/utils"
3031
"gopkg.in/yaml.v3"
3132
)
3233

33-
// DefaultMetadataDir the directory containing metadata files
34-
var DefaultMetadataDir string
35-
3634
func GenerateFallbackFileHash(token string, project string, config string, format models.SecretsFormat, nameTransformer *models.SecretsNameTransformer, secretNames []string) string {
3735
parts := []string{token}
3836
if project != "" && config != "" {
@@ -63,7 +61,7 @@ func GenerateFallbackFileHash(token string, project string, config string, forma
6361
// MetadataFilePath calculates the name of the metadata file
6462
func MetadataFilePath(token string, project string, config string, format models.SecretsFormat, nameTransformer *models.SecretsNameTransformer, secretNames []string) string {
6563
fileName := fmt.Sprintf(".metadata-%s.json", GenerateFallbackFileHash(token, project, config, format, nameTransformer, secretNames))
66-
path := filepath.Join(DefaultMetadataDir, fileName)
64+
path := filepath.Join(configuration.UserMetadataDir, fileName)
6765
if absPath, err := filepath.Abs(path); err == nil {
6866
return absPath
6967
}

0 commit comments

Comments
 (0)