1
0
镜像自地址 https://github.com/tuna/tunasync.git 已同步 2025-12-06 14:36:47 +00:00

add support of env config for rsync provider

这个提交包含在:
z4yx
2020-03-16 20:59:08 +08:00
父节点 fddb793ca1
当前提交 365f49e6d3
共有 3 个文件被更改,包括 18 次插入17 次删除

查看文件

@@ -135,6 +135,7 @@ func newMirrorProvider(mirror mirrorConfig, cfg *Config) mirrorProvider {
excludeFile: mirror.ExcludeFile,
extraOptions: mirror.RsyncOptions,
overriddenOptions: mirror.RsyncOverride,
rsyncEnv: mirror.Env,
workingDir: mirrorDir,
logDir: logDir,
logFile: filepath.Join(logDir, "latest.log"),
@@ -159,6 +160,7 @@ func newMirrorProvider(mirror mirrorConfig, cfg *Config) mirrorProvider {
password: mirror.Password,
excludeFile: mirror.ExcludeFile,
extraOptions: mirror.RsyncOptions,
rsyncEnv: mirror.Env,
workingDir: mirrorDir,
logDir: logDir,
logFile: filepath.Join(logDir, "latest.log"),

查看文件

@@ -15,6 +15,7 @@ type rsyncConfig struct {
upstreamURL, username, password, excludeFile string
extraOptions []string
overriddenOptions []string
rsyncEnv map[string]string
workingDir, logDir, logFile string
useIPv6, useIPv4 bool
interval time.Duration
@@ -50,6 +51,12 @@ func newRsyncProvider(c rsyncConfig) (*rsyncProvider, error) {
if c.rsyncCmd == "" {
provider.rsyncCmd = "rsync"
}
if c.username != "" {
c.rsyncEnv["USER"] = c.username
}
if c.password != "" {
c.rsyncEnv["RSYNC_PASSWORD"] = c.password
}
options := []string{
"-aHvh", "--no-o", "--no-g", "--stats",
@@ -116,18 +123,11 @@ func (p *rsyncProvider) Start() error {
return errors.New("provider is currently running")
}
env := map[string]string{}
if p.username != "" {
env["USER"] = p.username
}
if p.password != "" {
env["RSYNC_PASSWORD"] = p.password
}
command := []string{p.rsyncCmd}
command = append(command, p.options...)
command = append(command, p.upstreamURL, p.WorkingDir())
p.cmd = newCmdJob(p, command, p.WorkingDir(), env)
p.cmd = newCmdJob(p, command, p.WorkingDir(), p.rsyncEnv)
if err := p.prepareLogFile(false); err != nil {
return err
}

查看文件

@@ -16,6 +16,7 @@ type twoStageRsyncConfig struct {
stage1Profile string
upstreamURL, username, password, excludeFile string
extraOptions []string
rsyncEnv map[string]string
workingDir, logDir, logFile string
useIPv6 bool
interval time.Duration
@@ -69,6 +70,12 @@ func newTwoStageRsyncProvider(c twoStageRsyncConfig) (*twoStageRsyncProvider, er
},
}
if c.username != "" {
c.rsyncEnv["USER"] = c.username
}
if c.password != "" {
c.rsyncEnv["RSYNC_PASSWORD"] = c.password
}
if c.rsyncCmd == "" {
provider.rsyncCmd = "rsync"
}
@@ -132,14 +139,6 @@ func (p *twoStageRsyncProvider) Run() error {
return errors.New("provider is currently running")
}
env := map[string]string{}
if p.username != "" {
env["USER"] = p.username
}
if p.password != "" {
env["RSYNC_PASSWORD"] = p.password
}
p.dataSize = ""
stages := []int{1, 2}
for _, stage := range stages {
@@ -151,7 +150,7 @@ func (p *twoStageRsyncProvider) Run() error {
command = append(command, options...)
command = append(command, p.upstreamURL, p.WorkingDir())
p.cmd = newCmdJob(p, command, p.WorkingDir(), env)
p.cmd = newCmdJob(p, command, p.WorkingDir(), p.rsyncEnv)
if err := p.prepareLogFile(stage > 1); err != nil {
return err
}