From c8281b4c9340ae13dafca39acbf1e8e9ee3016c6 Mon Sep 17 00:00:00 2001 From: Josh Harshman Date: Fri, 16 Jun 2023 10:12:04 -0600 Subject: [PATCH] bugfix: Skip synchronization if IPs are up-to-date. --- cmd/update.go | 6 ++++++ main.go | 18 ++++++++++++++---- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/cmd/update.go b/cmd/update.go index 2be4038..5247983 100644 --- a/cmd/update.go +++ b/cmd/update.go @@ -16,6 +16,7 @@ func Update() *cobra.Command { // Local variable shared between the closures. var local *user.Config + var skipSync bool return &cobra.Command{ Use: "update", @@ -36,6 +37,7 @@ func Update() *cobra.Command { currentIP, _ := user.PublicIP() _, ipExists := cfg.HasIP(currentIP) if ipExists { + skipSync = true return nil } @@ -53,6 +55,10 @@ func Update() *cobra.Command { return cfg.Write(f) }, PostRunE: func(cmd *cobra.Command, args []string) error { + if skipSync { + fmt.Println("IPs are up-to-date, skipping sync.") + return nil + } fmt.Println("syncing firewall rule") return synchronize(local) }, diff --git a/main.go b/main.go index 3ae0ef8..222eb89 100644 --- a/main.go +++ b/main.go @@ -34,18 +34,28 @@ connecting from and keeps your development VM firewall rule up to date with that } fmt.Println("Operation complete, no errors.") - notifyIfUpdateAvailable() + err := notifyIfUpdateAvailable() + if err != nil { + fmt.Fprintln(os.Stderr, err) + } } -func notifyIfUpdateAvailable() { - cli, _ := ghapi.DefaultRESTClient() +func notifyIfUpdateAvailable() error { + cli, err := ghapi.DefaultRESTClient() + if err != nil { + return err + } latestTag := struct { Tag string `json:"tag_name"` }{} - cli.Get("repos/jharshman/fwsync/releases/latest", &latestTag) + err = cli.Get("repos/jharshman/fwsync/releases/latest", &latestTag) + if err != nil { + return err + } tag := strings.TrimPrefix(latestTag.Tag, "v") if tag != version { fmt.Printf("\n\033[0;32mA new version (%q) is available for fwsync.\033[0m\n", latestTag.Tag) fmt.Printf("\033[0;32mTo update run:\ncurl https://raw.githubusercontent.com/jharshman/fwsync/master/install.sh | sh\033[0m\n") } + return nil }