utils.go 736 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package servicelib
  2. import (
  3. "net"
  4. "os"
  5. "path/filepath"
  6. "strings"
  7. )
  8. func IsAddrInUse(network, addr string) bool {
  9. ln, err := net.Listen(network, addr)
  10. if err != nil {
  11. return true
  12. }
  13. _ = ln.Close()
  14. return false
  15. }
  16. func WriteVersionFile(dir, version string) error {
  17. file := filepath.Join(dir, "version.txt")
  18. tmp := file + ".tmp"
  19. if err := os.MkdirAll(dir, 0755); err != nil {
  20. return err
  21. }
  22. if err := os.WriteFile(tmp, []byte(version+"\n"), 0644); err != nil {
  23. return err
  24. }
  25. return os.Rename(tmp, file)
  26. }
  27. func ReadVersionFile(dir string) (string, error) {
  28. file := filepath.Join(dir, "version.txt")
  29. data, err := os.ReadFile(file)
  30. if err != nil {
  31. return "", err
  32. }
  33. return strings.TrimSpace(string(data)), nil
  34. }