Compare commits

..

No commits in common. 'dcac3ad47b416ac6a57dcb20d91f766b41676d48' and '565d1b697c4ab10a5ff5d46b9b5a33a4afd753f8' have entirely different histories.

  1. 1
      merlin/README.md
  2. 3
      merlin/config/config.go
  3. 5
      merlin/merlin-config.ini
  4. 1
      merlin/sync/interface.go
  5. 12
      merlin/sync/process.go

@ -18,6 +18,7 @@ Then configure `merlin-config.ini` and run using `./merlin`
- sort `arthur status` by last time synced
- last sync runtime, time until next sync
- when sync fails, then make a copy of the rsync logs
- create `csc-sync-fedora` rather than using the `report_mirror` setting
### Completed
- [x] add bwlimit option for each rsync process

@ -132,6 +132,8 @@ type Repo struct {
RsyncLogFile string `ini:"-"`
// full file path for file logging this repo's zfssync
ZfssyncLogFile string `ini:"-"`
// determines if report_mirror should be run after the sync (default: false)
ReportMirror bool `ini:"report_mirror"`
// add the "-vv" flag to rsync commands and enable the Debug log (default: false)
Verbose bool `ini:"verbose"`
// the repo will write its name and status in a Result struct to DoneChan
@ -232,6 +234,7 @@ func LoadConfig(configPath string, doneChan chan SyncResult, stopChan chan struc
RepoLogFile: filepath.Join(newConf.RepoLogDir, repoName) + ".log",
RsyncLogFile: filepath.Join(newConf.RsyncLogDir, repoName) + "-rsync.log",
ZfssyncLogFile: filepath.Join(newConf.ZfssyncLogDir, repoName) + "-zfssync.log",
ReportMirror: false,
Verbose: false,
DoneChan: doneChan,
StopChan: stopChan,

@ -51,12 +51,14 @@ rsync_host = rsync.dante.ctan.org
rsync_dir = CTAN
[fedora-epel]
dry_run = true
verbose = true
sync_type = csc-sync-standard
frequency = bi-hourly
local_dir = fedora/epel
rsync_host = mirrors.kernel.org
rsync_dir = fedora-epel
report_mirror = true
[cygwin]
sync_type = csc-sync-standard
@ -183,6 +185,7 @@ rsync_host = us-msync.centos.org
rsync_dir = CentOS
[opensuse]
dry_run = true
verbose = true
; unsure what this setting is supposed to do
; #"--exclude distribution/.timestamp_invisible"
@ -203,6 +206,7 @@ rsync_host = ftp2.uk.freebsd.org
rsync_dir = ftp.freebsd.org/pub/FreeBSD/
[fedora-enchilada]
dry_run = true
verbose = true
; csc-sync-standard fedora/linux mirrors.kernel.org fedora-enchilada/linux/ --ignore-errors && ~/bin/report_mirror >/dev/null
sync_type = csc-sync-standard
@ -210,6 +214,7 @@ frequency = bi-hourly
local_dir = fedora/linux
rsync_host = mirrors.kernel.org
rsync_dir = fedora-enchilada/linux/
report_mirror = true
[ubuntu-ports-releases]
sync_type = csc-sync-standard

@ -50,5 +50,6 @@ func SyncCompleted(repo *config.Repo, exit int) {
if exit == config.SUCCESS {
go zfsSync(repo)
go reportMirror(repo)
}
}

@ -146,3 +146,15 @@ func zfsSync(repo *config.Repo) {
}
}
}
func reportMirror(repo *config.Repo) {
if !repo.ReportMirror {
return
}
repo.Logger.Debug("Running report_mirror")
err := exec.Command("/bin/sh", "/home/mirror/bin/report_mirror").Run()
if err != nil {
repo.Logger.Error(fmt.Errorf("Error running report_mirror: %w", err))
}
}

Loading…
Cancel
Save