Commit bc4644f

Karn Wong <[email protected]>
2026-01-09 03:36:48
refactor: consolidate args inference
1 parent b9cf02b
Changed files (3)
internal/utils/args.go
@@ -0,0 +1,42 @@
+package utils
+
+import (
+	"fmt"
+	"net"
+	"os"
+	"strings"
+)
+
+func setValueFromArgsOrClipboard(args []string, validator func(string) bool, errorMsg string, allowEmpty bool) string {
+	var value string
+	if len(args) == 0 {
+		clipboardValue := ReadFromClipboard()
+		if clipboardValue != "" && validator(clipboardValue) {
+			value = strings.TrimSpace(clipboardValue)
+		}
+	}
+	if value == "" {
+		if len(args) == 0 {
+			if allowEmpty {
+				return ""
+			}
+			fmt.Println(errorMsg)
+			os.Exit(1)
+		} else if len(args) == 1 {
+			value = args[0]
+		}
+	}
+	return value
+}
+
+func SetURL(args []string) string {
+	return setValueFromArgsOrClipboard(args,
+		func(s string) bool { return strings.HasPrefix(s, "https://") },
+		"Please specify URL", false)
+}
+
+func SetIP(args []string) string {
+	return setValueFromArgsOrClipboard(args,
+		func(s string) bool { return net.ParseIP(strings.TrimSpace(s)) != nil },
+		"", true)
+}
internal/utils/ip.go
@@ -1,29 +0,0 @@
-package utils
-
-import (
-	"net"
-	"strings"
-)
-
-func SetIP(args []string) string {
-	var ip string
-	if len(args) == 0 {
-		ipFromClipboard := ReadFromClipboard()
-		if ipFromClipboard != "" {
-			// Check if it's a valid IP address
-			if net.ParseIP(strings.TrimSpace(ipFromClipboard)) != nil {
-				ip = strings.TrimSpace(ipFromClipboard)
-			}
-		}
-	}
-	if ip == "" {
-		if len(args) == 0 {
-			// Return empty string to use public IP
-			return ""
-		} else if len(args) == 1 {
-			ip = args[0]
-		}
-	}
-
-	return ip
-}
internal/utils/url.go
@@ -1,29 +0,0 @@
-package utils
-
-import (
-	"fmt"
-	"os"
-	"strings"
-)
-
-func SetURL(args []string) string {
-	var url string
-	if len(args) == 0 {
-		urlFromClipboard := ReadFromClipboard()
-		if urlFromClipboard != "" {
-			if strings.HasPrefix(urlFromClipboard, "https://") {
-				url = urlFromClipboard
-			}
-		}
-	}
-	if url == "" {
-		if len(args) == 0 {
-			fmt.Println("Please specify URL")
-			os.Exit(1)
-		} else if len(args) == 1 {
-			url = args[0]
-		}
-	}
-
-	return url
-}