From 7c332f66ba46d6b214739ac03bc3ec68411a52a0 Mon Sep 17 00:00:00 2001 From: Layla Manley Date: Tue, 5 Dec 2023 19:03:39 +0000 Subject: [PATCH] commit 2 --- main.go | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 main.go diff --git a/main.go b/main.go new file mode 100644 index 0000000..4ac4a26 --- /dev/null +++ b/main.go @@ -0,0 +1,61 @@ +package main + +import ( + "flag" + "os" + + "gitea.layla.gg/layla/gsquash/git" +) + +func main() { + // Set flags + flagset := flag.NewFlagSet("git", flag.ExitOnError) + pull := flagset.Bool("pull", false, "Pull the latest changes from the remote") + message := flagset.String("m", "", "The commit message") + version := flagset.Bool("version", false, "Print the version") + help := flagset.Bool("h", false, "Print the help") + + // Parse flags + flagset.Parse(os.Args[1:]) + args := flagset.Args() + + // Print version + if *version { + println("gsquash v0.0.1") + return + } + + // Help + if *help || len(args) == 0 { + println("Usage: gsquash [options] [message]") + flagset.PrintDefaults() + return + } + + // Set up git + g := git.NewGit(&git.NewGitInput{ + Executable: "git", + }) + + // Pull + if *pull { + err := g.Pull() + if err != nil { + panic(err) + } + } + + squashInput := git.SquashInput{} + if message != nil && *message != "" { + squashInput.Message = message + } + + // Squash + if len(args) > 0 { + err := g.Squash(squashInput) + if err != nil { + panic(err) + } + } + +}