// Copyright 2017-2025 WIT.COM Inc. All rights reserved. // Use of this source code is governed by the GPL 3.0 package main import ( "fmt" "time" "go.wit.com/lib/gui/shell" "go.wit.com/lib/protobuf/forgepb" "go.wit.com/log" ) // trys to figure out if there is still something to update func doSync() error { if argv.Sync.Clean != nil { return doSyncClean() } if argv.Sync.User != nil { return doSyncUser() } return fmt.Errorf("nothing to do") } func doSyncClean() error { me.argvCheckoutMaster = true me.forge.Config.Mode = forgepb.ForgeMode_MASTER me.forge.Config.ConfigSave() if err := doCheckoutShared(); err != nil { return err } if _, _, _, err := IsEverythingOnMaster(); err != nil { log.Info("Not all repos are on the master branch") return err } if err := doCleanUser(); err != nil { badExit(err) } if err := doCleanDevel(); err != nil { badExit(err) } now := time.Now() pullcount := me.forge.RillFuncError(rillPull) count := me.forge.RillReload() if count != 0 { me.forge.ConfigSave() } total, count, nope, _ := IsEverythingOnMaster() log.Printf("Master branch check. %d total repos. (%d git pulled) (%d not on master branch) (%s) git pull total=%d\n", total, count, nope, shell.FormatDuration(time.Since(now)), pullcount) return nil } func doSyncUser() error { me.argvCheckoutUser = true me.forge.Config.Mode = forgepb.ForgeMode_USER me.forge.Config.ConfigSave() if err := doCheckoutShared(); err != nil { return err } return nil }