// Copyright 2017-2025 WIT.COM Inc. All rights reserved. // Use of this source code is governed by the GPL 3.0 package main import ( "os" "go.wit.com/lib/gui/shell" "go.wit.com/lib/protobuf/gitpb" "go.wit.com/log" ) func doCommit() { if argv.All { log.Info("do a commit everywhere") doCheckDirtyAndConfigSave() found := findDirty() all := found.All() for all.Scan() { repo := all.Next() log.Info("do a commit on repo", repo.GetGoPath()) if err := doCommitRepo(repo); err != nil { badExit(err) } } okExit("") } pwd, _ := os.Getwd() repo := me.forge.Repos.FindByFullPath(pwd) if repo == nil { log.Info("todo: forge doesn't know how to work here yet") okExit("") } if repo.GetCurrentBranchName() != repo.GetUserBranchName() { me.found.Append(repo) me.forge.PrintHumanTable(me.found) log.Info("") log.Info("wrong branch. Can not commit on", repo.GetCurrentBranchName()) log.Info("") okExit("") } os.Setenv("LESS", "-XR") if err := shell.Exec([]string{"git", "diff"}); err != nil { badExit(err) } if argv.All { if err := shell.ExecCheck([]string{"git", "add", "--all"}); err != nil { badExit(err) } } if err := shell.ExecCheck([]string{"git", "commit", "--all"}); err != nil { badExit(err) } log.Info("git commit ok. forge done") } func doCommitRepo(repo *gitpb.Repo) error { if repo.GetCurrentBranchName() != repo.GetUserBranchName() { me.found.Append(repo) me.forge.PrintHumanTable(me.found) log.Info("") log.Info("wrong branch. Can not commit on", repo.GetCurrentBranchName()) log.Info("") return nil } os.Chdir(repo.GetFullPath()) os.Setenv("LESS", "-XR") if err := shell.Exec([]string{"git", "diff"}); err != nil { return err } if argv.All { if err := shell.ExecCheck([]string{"git", "add", "--all"}); err != nil { return err } } if err := shell.ExecCheck([]string{"git", "commit", "--all"}); err != nil { return err } log.Info("git commit ok. forge done") return nil }