1package extras
2
3import (
4 "log"
5 "os"
6 "strings"
7 "time"
8
9 "github.com/go-ping/ping"
10)
11
12var LeftButtonState = false
13var RightButtonState = false
14var LeftButtonPressedTime time.Time
15var NavigationHoldDuration float64
16var CloudflareIP string
17
18func checkError(error error) {
19 if error != nil {
20 log.Fatal(error)
21 }
22}
23
24func GetCWD() string {
25 path, err := os.Getwd()
26 checkError(err)
27 dirname, err := os.UserHomeDir()
28 checkError(err)
29 return strings.Replace(path+"/", dirname, "~", 1)
30}
31
32func FitWithinCharacterLimits(characterLimit int, stringToFit string) string {
33 if characterLimit > len(stringToFit) {
34 return stringToFit
35 }
36 return string(stringToFit[:characterLimit-1])
37}
38
39func PingCloudflare() bool {
40 pinger, err := ping.NewPinger(CloudflareIP)
41 if err != nil {
42 panic(err)
43 }
44 pinger.Count = 1
45 err = pinger.Run() // Blocks until finished.
46 if err != nil {
47 panic(err)
48 }
49 stats := pinger.Statistics()
50 if stats.PacketLoss == 0 {
51 return true
52 } else {
53 return false
54 }
55}