Skip to content

Commit fba5894

Browse files
authored
Merge pull request #1 from Format-C-eft/dev
add git reset command
2 parents 0edf6ef + fe208b3 commit fba5894

File tree

3 files changed

+19
-6
lines changed

3 files changed

+19
-6
lines changed

internal/cmd/dto.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ var (
1717
flagCheckout bool
1818
flagFetch bool
1919
flagPull bool
20+
flagResetHard bool
2021
flagDefaultBranch string
2122

2223
flagExecuteTimeout *time.Duration

internal/cmd/init.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,15 @@ var rootCmd = &cobra.Command{
1515
}
1616

1717
func init() {
18-
rootCmd.Version = "v0.0.1-alpha1"
18+
rootCmd.Version = "v0.0.1"
1919

2020
rootCmd.Flags().StringVarP(&flagDir, "dir", "d", "../", "Путь к каталогу с проектами")
2121
rootCmd.Flags().StringVarP(&flagDefaultBranch, "branch", "b", "master", "Наименование ветки: master/main")
2222
rootCmd.Flags().BoolVarP(&flagAll, "all", "a", false, "Выполнить все шаги checkout master, fetch, pull")
23-
rootCmd.Flags().BoolVarP(&flagAll, "checkout", "c", false, "Выполнить checkout master")
24-
rootCmd.Flags().BoolVarP(&flagAll, "fetch", "f", false, "Выполнить fetch")
25-
rootCmd.Flags().BoolVarP(&flagAll, "pull", "p", false, "Выполнить pull")
23+
rootCmd.Flags().BoolVarP(&flagCheckout, "checkout", "c", false, "Выполнить checkout master")
24+
rootCmd.Flags().BoolVarP(&flagFetch, "fetch", "f", false, "Выполнить fetch")
25+
rootCmd.Flags().BoolVarP(&flagPull, "pull", "p", false, "Выполнить pull")
26+
rootCmd.Flags().BoolVarP(&flagResetHard, "reset-hard", "r", false, "При необходимости перед git checkout выполнить git reset --hard")
2627

2728
flagExecuteTimeout = rootCmd.Flags().DurationP("execute_timeout", "e", time.Second*30, "Максимальное время обработки одного каталога")
2829
}

internal/cmd/run.go

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,18 @@ func processDir(dir string, ch chan resultLogChan) {
103103
}
104104

105105
if !strings.Contains(string(res), gitStatusOk) {
106-
resultLogs.AddLog("skipped: there are uncommitted changes")
107-
return
106+
resultLogs.AddLog("find uncommitted changes")
107+
108+
if !flagResetHard {
109+
resultLogs.AddLog("skipped: there are uncommitted changes")
110+
return
111+
}
112+
113+
if _, err := shell_executor.Run(ctx, dir, "git", "reset", "--hard"); err != nil {
114+
resultLogs.AddLog("error: git reset --hard: " + err.Error())
115+
return
116+
}
117+
resultLogs.AddLog("success: git reset --hard")
108118
}
109119

110120
if _, err := shell_executor.Run(ctx, dir, "git", "checkout", flagDefaultBranch); err != nil {
@@ -124,4 +134,5 @@ func processDir(dir string, ch chan resultLogChan) {
124134
return
125135
}
126136
resultLogs.AddLog("success: git pull")
137+
127138
}

0 commit comments

Comments
 (0)