@@ -11,6 +11,7 @@ import (
1111 "os/exec"
1212 "rclone-manager/internal/config"
1313 "rclone-manager/internal/constants"
14+ "rclone-manager/internal/environment"
1415 "reflect"
1516 "strconv"
1617 "strings"
@@ -42,7 +43,7 @@ func createMountCommand(instance *MountedEndpoint, logger zerolog.Logger) *exec.
4243 fsArg := fmt .Sprintf ("%s%s:" , constants .Fs , instance .BackendName )
4344 mountPointArg := fmt .Sprintf ("%s%s" , constants .MountPoint , instance .MountPoint )
4445
45- payloads , err := constructPayloadsFromCombinedEnvVars (currentRCDEnv , instance .EnvVars , logger )
46+ payloads , err := constructPayloadsFromCombinedEnvVars (currentRCDEnv , instance .Environment , logger )
4647 if err != nil {
4748 logger .Error ().AnErr (constants .LogError , err ).Str (constants .LogBackend , instance .BackendName ).
4849 Msg ("Failed to construct mount payloads" )
@@ -57,6 +58,8 @@ func createMountCommand(instance *MountedEndpoint, logger zerolog.Logger) *exec.
5758 cmd .Stderr = os .Stderr
5859 cmd .SysProcAttr = & syscall.SysProcAttr {Setpgid : true }
5960
61+ cmd .Env = environment .PrepareEnvironment (instance .Environment )
62+
6063 return cmd
6164}
6265
@@ -74,12 +77,17 @@ func constructPayloadsFromCombinedEnvVars(options map[string]interface{}, envVar
7477 mountTags := extractConfigTags (& mountlib.Options {}, logger )
7578 vfsTags := extractConfigTags (& vfscommon.Options {}, logger )
7679
80+ logger .Debug ().Interface ("envVars" , envVars ).Msg ("Augmenting options with environment variables" )
81+
82+ vfsEnvs := envVars
83+ mountEnvs := envVars
84+
7785 // Update options using extracted config tags
78- updateOptionsWithEnv (vfsOptions , envVars , "vfs" , vfsTags , logger )
79- updateOptionsWithEnv ( mountOptions , envVars , "mount " , mountTags , logger )
86+ updateOptionsWithEnv (vfsOptions , vfsEnvs , "vfs" , vfsTags , logger )
87+ logger . Debug (). Interface ( "vfsOptions " , vfsOptions ). Msg ( "Updated VFS Options" )
8088
89+ updateOptionsWithEnv (mountOptions , mountEnvs , "mount" , mountTags , logger )
8190 logger .Debug ().Interface ("mountOptions" , mountOptions ).Msg ("Updated Mount Options" )
82- logger .Debug ().Interface ("vfsOptions" , vfsOptions ).Msg ("Updated VFS Options" )
8391
8492 vfsPayloadJson , err := json .Marshal (vfsOptions )
8593 if err != nil {
@@ -116,6 +124,8 @@ func extractConfigTags(opt interface{}, logger zerolog.Logger) map[string]string
116124}
117125
118126func updateOptionsWithEnv (options map [string ]interface {}, envVars map [string ]string , section string , configTags map [string ]string , logger zerolog.Logger ) {
127+ logger .Debug ().Str ("section" , section ).Interface ("options" , options ).Msg ("Updating options from environment variables" )
128+
119129 for key , value := range envVars {
120130 if strings .HasPrefix (key , fmt .Sprintf ("RCLONE_%s_" , strings .ToUpper (section ))) {
121131 cleanKey := strings .TrimPrefix (key , fmt .Sprintf ("RCLONE_%s_" , strings .ToUpper (section )))
@@ -224,7 +234,7 @@ func setupMountsFromConfig(conf *config.Config, logger zerolog.Logger) {
224234 instance := & MountedEndpoint {
225235 BackendName : mount .BackendName ,
226236 MountPoint : mount .MountPoint ,
227- EnvVars : mount .Environment ,
237+ Environment : mount .Environment ,
228238 }
229239 if existing , ok := getMountedEndpoint (mount .BackendName ); ok {
230240 if existing .MountPoint != instance .MountPoint {
0 commit comments