|
|
@@ -0,0 +1,41 @@
|
|
|
+package servicelib
|
|
|
+
|
|
|
+import (
|
|
|
+ "net"
|
|
|
+ "os"
|
|
|
+ "path/filepath"
|
|
|
+ "strings"
|
|
|
+)
|
|
|
+
|
|
|
+func IsAddrInUse(network, addr string) bool {
|
|
|
+ ln, err := net.Listen(network, addr)
|
|
|
+ if err != nil {
|
|
|
+ return true
|
|
|
+ }
|
|
|
+ _ = ln.Close()
|
|
|
+ return false
|
|
|
+}
|
|
|
+
|
|
|
+func WriteVersionFile(dir, version string) error {
|
|
|
+ file := filepath.Join(dir, "version.txt")
|
|
|
+ tmp := file + ".tmp"
|
|
|
+
|
|
|
+ if err := os.MkdirAll(dir, 0755); err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
+ if err := os.WriteFile(tmp, []byte(version+"\n"), 0644); err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
+ return os.Rename(tmp, file)
|
|
|
+}
|
|
|
+
|
|
|
+func ReadVersionFile(dir string) (string, error) {
|
|
|
+ file := filepath.Join(dir, "version.txt")
|
|
|
+ data, err := os.ReadFile(file)
|
|
|
+ if err != nil {
|
|
|
+ return "", err
|
|
|
+ }
|
|
|
+ return strings.TrimSpace(string(data)), nil
|
|
|
+}
|