Commit bc4644f
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
-}