Skip to content

Commit

Permalink
Fix: Match test cases
Browse files Browse the repository at this point in the history
  • Loading branch information
DanielHougaard committed Aug 27, 2024
1 parent 47cba8e commit d45ac66
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 22 deletions.
44 changes: 23 additions & 21 deletions cli/packages/cmd/run.go
Original file line number Diff line number Diff line change
Expand Up @@ -123,16 +123,16 @@ var runCmd = &cobra.Command{
Recursive: recursive,
}

env, initialETag, err := createInjectableEnvironment(request, projectConfigDir, secretOverriding, shouldExpandSecrets, token)
injectableEnvironment, err := createInjectableEnvironment(request, projectConfigDir, secretOverriding, shouldExpandSecrets, token)
if err != nil {
util.HandleError(err, "Could not fetch secrets", "If you are using a service token to fetch secrets, please ensure it is valid")
}

log.Debug().Msgf("injecting the following environment variables into shell: %v", env)
log.Debug().Msgf("injecting the following environment variables into shell: %v", injectableEnvironment.Variables)

Telemetry.CaptureEvent("cli-command:run",
posthog.NewProperties().
Set("secretsCount", len(env)).
Set("secretsCount", injectableEnvironment.SecretsCount).
Set("environment", environmentName).
Set("isUsingServiceToken", token != nil && token.Type == util.SERVICE_TOKEN_IDENTIFIER).
Set("isUsingUniversalAuthToken", token != nil && token.Type == util.UNIVERSAL_AUTH_TOKEN_IDENTIFIER).
Expand All @@ -146,16 +146,14 @@ var runCmd = &cobra.Command{
ProjectConfigDir: projectConfigDir,
SecretOverriding: secretOverriding,
ExpandSecrets: shouldExpandSecrets,
InitialETag: initialETag,
CurrentETag: injectableEnvironment.ETag,
}

if cmd.Flags().Changed("command") {
command := cmd.Flag("command").Value.String()

executeMultipleCommandWithEnvs(command, len(env), env, hotReloadParameters, token)

executeMultipleCommandWithEnvs(command, injectableEnvironment.SecretsCount, injectableEnvironment.Variables, hotReloadParameters, token)
} else {
executeSingleCommandWithEnvs(args, len(env), env, hotReloadParameters, token)
executeSingleCommandWithEnvs(args, injectableEnvironment.SecretsCount, injectableEnvironment.Variables, hotReloadParameters, token)

}
},
Expand Down Expand Up @@ -269,7 +267,7 @@ func executeSingleCommandWithEnvs(args []string, secretsCount int, env []string,
return
case <-ticker.C:
log.Debug().Msg("Checking for environment updates...")
newEnv, newEtag, err := createInjectableEnvironment(
injectableEnvironment, err := createInjectableEnvironment(
reloadParameters.GetSecretsDetails,
reloadParameters.ProjectConfigDir,
reloadParameters.SecretOverriding,
Expand All @@ -281,11 +279,11 @@ func executeSingleCommandWithEnvs(args []string, secretsCount int, env []string,
continue
}

if newEtag != reloadParameters.InitialETag {
if injectableEnvironment.ETag != reloadParameters.CurrentETag {
log.Info().Msg("[HOT RELOAD] Environment changed. Reloading application...")
reloadParameters.InitialETag = newEtag
env = newEnv
secretsCount = len(newEnv)
reloadParameters.CurrentETag = injectableEnvironment.ETag
env = injectableEnvironment.Variables
secretsCount = injectableEnvironment.SecretsCount
startCmd() // Restart the command with new environment
} else {
log.Debug().Msg("Not reloading because environments are identical")
Expand Down Expand Up @@ -361,7 +359,7 @@ func executeMultipleCommandWithEnvs(fullCommand string, secretsCount int, env []
return
case <-ticker.C:
log.Debug().Msg(color.HiMagentaString("[HOT RELOAD] | Checking for environment updates..."))
newEnv, newEtag, err := createInjectableEnvironment(
injectableEnvironment, err := createInjectableEnvironment(
reloadParameters.GetSecretsDetails,
reloadParameters.ProjectConfigDir,
reloadParameters.SecretOverriding,
Expand All @@ -373,11 +371,11 @@ func executeMultipleCommandWithEnvs(fullCommand string, secretsCount int, env []
continue
}

if newEtag != reloadParameters.InitialETag {
if injectableEnvironment.ETag != reloadParameters.CurrentETag {
log.Info().Msg("[HOT RELOAD] Environment changed. Reloading application...")
reloadParameters.InitialETag = newEtag
env = newEnv
secretsCount = len(newEnv)
reloadParameters.CurrentETag = injectableEnvironment.ETag
env = injectableEnvironment.Variables
secretsCount = injectableEnvironment.SecretsCount
startCmd() // Restart the command with new environment
} else {
log.Debug().Msg("Not reloading because environments are identical")
Expand Down Expand Up @@ -453,12 +451,12 @@ func handleCommandTermination(cmd *exec.Cmd, cmdCancel context.CancelFunc) {
}
}

func createInjectableEnvironment(request models.GetAllSecretsParameters, projectConfigDir string, secretOverriding bool, shouldExpandSecrets bool, token *models.TokenDetails) ([]string, string, error) {
func createInjectableEnvironment(request models.GetAllSecretsParameters, projectConfigDir string, secretOverriding bool, shouldExpandSecrets bool, token *models.TokenDetails) (models.InjectableEnvironmentResult, error) {

secrets, err := util.GetAllEnvironmentVariables(request, projectConfigDir)

if err != nil {
return nil, "", err
return models.InjectableEnvironmentResult{}, err
}

if secretOverriding {
Expand Down Expand Up @@ -505,5 +503,9 @@ func createInjectableEnvironment(request models.GetAllSecretsParameters, project
env = append(env, key+"="+value)
}

return env, util.GenerateETagFromSecrets(secrets), nil
return models.InjectableEnvironmentResult{
Variables: env,
ETag: util.GenerateETagFromSecrets(secrets),
SecretsCount: len(secretsByKey),
}, nil
}
8 changes: 7 additions & 1 deletion cli/packages/models/cli.go
Original file line number Diff line number Diff line change
Expand Up @@ -104,13 +104,19 @@ type GetAllSecretsParameters struct {
Recursive bool
}

type InjectableEnvironmentResult struct {
Variables []string
ETag string
SecretsCount int
}

type ExecuteCommandHotReloadParameters struct {
Enabled bool
GetSecretsDetails GetAllSecretsParameters
ProjectConfigDir string
SecretOverriding bool
ExpandSecrets bool
InitialETag string
CurrentETag string
}

type GetAllFoldersParameters struct {
Expand Down

0 comments on commit d45ac66

Please sign in to comment.