utils

package
v0.90.24 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 10, 2020 License: GPL-3.0 Imports: 28 Imported by: 0

Documentation

Overview

Package utils contains common methods used in most packages in Statping. This package contains multiple function like: Logging, encryption, type conversions, setting utils.Directory as the current directory, running local CMD commands, and creating/deleting files/folder.

You can overwrite the utils.Directory global variable by including STATPING_DIR environment variable to be an absolute path.

More info on: https://github.com/statping/statping

Index

Examples

Constants

View Source
const (
	B  = 0x100
	N  = 0x1000
	BM = 0xff
)

Variables

View Source
var (
	Log = Logger.StandardLogger()

	LastLines   []*logRow
	LockLines   sync.Mutex
	VerboseMode int
)
View Source
var (
	// Directory returns the current path or the STATPING_DIR environment variable
	Directory string
)
View Source
var (
	StartTime = Now()
)

Functions

func CloseLogs added in v0.90.11

func CloseLogs()

CloseLogs will close the log file correctly on shutdown

func Command added in v0.79.1

func Command(name string, args ...string) (string, string, error)

Command will run a terminal command with 'sh -c COMMAND' and return stdout and errOut as strings

in, out, err := Command("sass assets/scss assets/css/base.css")

func CreateDirectory added in v0.90.11

func CreateDirectory(directory string) error

CreateDirectory will attempt to create a directory

CreateDirectory("assets")

func DeleteDirectory added in v0.79.1

func DeleteDirectory(directory string) error

DeleteDirectory will attempt to delete a directory and all contents inside

DeleteDirectory("assets")

func DeleteFile added in v0.29.3

func DeleteFile(file string) error

DeleteFile will attempt to delete a file

DeleteFile("newfile.json")

func DirWritable added in v0.90.11

func DirWritable(path string) (bool, error)

func DurationReadable added in v0.79.1

func DurationReadable(d time.Duration) string

DurationReadable will return a time.Duration into a human readable string // t := time.Duration(5 * time.Minute) // DurationReadable(t) // returns: 5 minutes

Example
dur, _ := time.ParseDuration("25m")
readable := DurationReadable(dur)
fmt.Print(readable)
Output:

25 minutes

func FileExists added in v0.79.1

func FileExists(name string) bool

FileExists returns true if a file exists

exists := FileExists("assets/css/base.css")

func FolderExists added in v0.90.11

func FolderExists(folder string) bool

FolderExists will return true if the folder exists

func FormatDuration added in v0.79.1

func FormatDuration(d time.Duration) string

FormatDuration converts a time.Duration into a string

func GetLastLine added in v0.79.1

func GetLastLine() *logRow

GetLastLine returns 1 line for a recent log entry

func Getenv added in v0.90.11

func Getenv(key string, defaultValue interface{}) interface{}

func GetenvAs added in v0.90.22

func GetenvAs(key string, defaultValue interface{}) *env

func HashPassword

func HashPassword(password string) string

HashPassword returns the bcrypt hash of a password string

func HttpRequest added in v0.79.9

func HttpRequest(url, method string, content interface{}, headers []string, body io.Reader, timeout time.Duration, verifySSL bool) ([]byte, *http.Response, error)

HttpRequest is a global function to send a HTTP request // url - The URL for HTTP request // method - GET, POST, DELETE, PATCH // content - The HTTP request content type (text/plain, application/json, or nil) // headers - An array of Headers to be sent (KEY=VALUE) []string{"Authentication=12345", ...} // body - The body or form data to send with HTTP request // timeout - Specific duration to timeout on. time.Duration(30 * time.Seconds) // You can use a HTTP Proxy if you HTTP_PROXY environment variable

func InitLogs added in v0.79.1

func InitLogs() error

InitLogs will create the '/logs' directory and creates a file '/logs/statup.log' for application logging

func NewSHA256Hash added in v0.90.11

func NewSHA256Hash() string

NewSHA1Hash returns a random SHA1 hash based on a specific length

func Now added in v0.90.11

func Now() time.Time

Now returns the UTC timestamp

func OpenFile added in v0.90.11

func OpenFile(filePath string) (string, error)

func RandomString

func RandomString(n int) string

RandomString generates a random string of n length

func RenameDirectory added in v0.90.14

func RenameDirectory(fromDir string, toDir string) error

RenameDirectory will attempt rename a directory to a new name

func ReplaceTemplate added in v0.90.16

func ReplaceTemplate(tmpl string, data interface{}) string

func SaveFile added in v0.79.1

func SaveFile(filename string, data []byte) error

SaveFile will create a new file with data inside it

SaveFile("newfile.json", []byte('{"data": "success"}')

func SentryErr added in v0.90.22

func SentryErr(err error)

func SentryInit added in v0.90.22

func SentryInit(v string)

func SentryLogEntry added in v0.90.22

func SentryLogEntry(entry *Logger.Entry)

func Timezoner added in v0.79.1

func Timezoner(t time.Time, zone float32) time.Time

Timezoner returns the time.Time with the user set timezone

func ToFields added in v0.90.11

func ToFields(d ...interface{}) map[string]interface{}

ToFields accepts any amount of interfaces to create a new mapping for log.Fields. You will need to turn on verbose mode by starting Statping with "-v". This function will convert a struct of to the base struct name, and each field into it's own mapping, for example: type "*services.Service", on string field "Name" converts to "service_name=value". There is also an additional field called "_pointer" that will return the pointer hex value.

func ToInt added in v0.79.9

func ToInt(s interface{}) int64

ToInt converts a int to a string

func ToString added in v0.79.1

func ToString(s interface{}) string

ToString converts a int to a string

Example
amount := 42
fmt.Print(ToString(amount))
Output:

42

Types

type Metrics added in v0.90.11

type Metrics struct {
	Requests     int64
	Errors       int64
	Bytes        int64
	Milliseconds int64
	OnlineTime   time.Time
}

func GetHttpMetrics added in v0.90.11

func GetHttpMetrics() *Metrics

func (*Metrics) Reset added in v0.90.11

func (h *Metrics) Reset()

type Perlin added in v0.80.51

type Perlin struct {
	// contains filtered or unexported fields
}

Perlin is the noise generator

func NewPerlin added in v0.80.51

func NewPerlin(alpha, beta float64, n int, seed int64) *Perlin

func NewPerlinRandSource added in v0.80.51

func NewPerlinRandSource(alpha, beta float64, n int, source rand.Source) *Perlin

func (*Perlin) Noise1D added in v0.80.51

func (p *Perlin) Noise1D(x float64) float64

type Timestamp added in v0.79.1

type Timestamp time.Time

func (Timestamp) Ago added in v0.79.1

func (t Timestamp) Ago() string

Ago returns a human readable timestamp based on the Timestamp (time.Time) interface

type Timestamper added in v0.79.1

type Timestamper interface {
	Ago() string
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL