package utils import ( "fmt" "log" "os" "runtime" "strconv" "strings" "time" ) func Cwd(i int) string { _, fp, _, _ := runtime.Caller(i) slice := strings.Split(fp, "/") slice = slice[:len(slice)-1] path := strings.Join(slice, "/") return path } func Err(err error) { _, fp, line, _ := runtime.Caller(1) errStr := fmt.Sprintf("Error at %s:%d: %s\n", fp, line, err) fmt.Printf("%s", errStr) log, _ := os.OpenFile("error.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0655) defer log.Close() errLogStr := fmt.Sprintf("%s %s", time.Now(), errStr) log.WriteString(errLogStr) } func CheckArgs() { if len(os.Args) < 2 { log.Fatalf("ERROR: port number required: eg ./bin 3000") } _, err := strconv.Atoi(os.Args[1]) if err != nil { log.Fatalf("ERROR: port must be a number") } }