// 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/lib/protobuf/gitpb" "go.wit.com/log" ) // trys to figure out if there is still something to update func didRepoChangeDir(repo *gitpb.Repo) error { return repo.DidRepoChangeDir() } func doCheckout() error { if argv.Checkout.User != nil { setForgeMode(forgepb.ForgeMode_USER) start := time.Now() err := me.forge.DoAllCheckoutUser(argv.Force) dur := time.Since(start) log.Printf("Checked out %d user braches in %s\n", me.forge.Repos.Len(), shell.FormatDuration(dur)) me.forge.ScanRepoDir() // looks for new dirs, checks existing repos for changes me.forge.SaveRepos() if err != nil { badExit(err) } okExit("") } if argv.Checkout.Devel != nil { setForgeMode(forgepb.ForgeMode_DEVEL) if err := me.forge.DoAllCheckoutDevelNew(argv.Force); err != nil { badExit(err) } okExit("") } if argv.Checkout.Master != nil { setForgeMode(forgepb.ForgeMode_MASTER) err := me.forge.DoAllCheckoutMaster() me.forge.ScanRepoDir() // looks for new dirs, checks existing repos for changes me.forge.SaveRepos() if err != nil { badExit(err) } okExit("") } badExit(fmt.Errorf("did not specify what branch to checkout")) return nil }