utils.go 802 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package utils
  2. import (
  3. "fmt"
  4. "log"
  5. "os"
  6. "runtime"
  7. "strconv"
  8. "strings"
  9. "time"
  10. )
  11. func Cwd(i int) string {
  12. _, fp, _, _ := runtime.Caller(i)
  13. slice := strings.Split(fp, "/")
  14. slice = slice[:len(slice)-1]
  15. path := strings.Join(slice, "/")
  16. return path
  17. }
  18. func Err(err error) {
  19. _, fp, line, _ := runtime.Caller(1)
  20. errStr := fmt.Sprintf("Error at %s:%d: %s\n", fp, line, err)
  21. fmt.Printf("%s", errStr)
  22. log, _ := os.OpenFile("error.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0655)
  23. defer log.Close()
  24. errLogStr := fmt.Sprintf("%s %s", time.Now(), errStr)
  25. log.WriteString(errLogStr)
  26. }
  27. func CheckArgs() {
  28. if len(os.Args) < 2 {
  29. log.Fatalf("ERROR: port number required: eg ./bin 3000")
  30. }
  31. _, err := strconv.Atoi(os.Args[1])
  32. if err != nil {
  33. log.Fatalf("ERROR: port must be a number")
  34. }
  35. }