utils

package
v0.0.0-...-39e0c7e Latest Latest
Warning

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

Go to latest
Published: Dec 23, 2022 License: GPL-3.0 Imports: 30 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-ng /statping-ng

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 (
	Params *viper.Viper
)

Functions

func CheckHash

func CheckHash(password, hash string) bool

CheckHash returns true if the password matches with a hashed bcrypt password

func CloseLogs

func CloseLogs()

CloseLogs will close the log file correctly on shutdown

func Command

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

func CreateDirectory(directory string) error

CreateDirectory will attempt to create a directory

CreateDirectory("assets")

func DeleteDirectory

func DeleteDirectory(directory string) error

DeleteDirectory will attempt to delete a directory and all contents inside

DeleteDirectory("assets")

func DeleteFile

func DeleteFile(file string) error

DeleteFile will attempt to delete a file

DeleteFile("newfile.json")

func DirWritable

func DirWritable(path string) (bool, error)

func DurationReadable

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

func FileExists(name string) bool

FileExists returns true if a file exists

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

func FileExtension

func FileExtension(path string) string

FileExtension returns the file extension based on a file path

func FolderExists

func FolderExists(folder string) bool

FolderExists will return true if the folder exists

func FormatDuration

func FormatDuration(d time.Duration) string

FormatDuration converts a time.Duration into a string

func GetLastLine

func GetLastLine() *logRow

GetLastLine returns 1 line for a recent log entry

func HashPassword

func HashPassword(password string) string

HashPassword returns the bcrypt hash of a password string

func HttpRequest

func HttpRequest(endpoint, method string, contentType interface{}, headers []string, body io.Reader, timeout time.Duration, verifySSL bool, customTLS *tls.Config) ([]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 InitEnvs

func InitEnvs()

func InitLogs

func InitLogs() error

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

func NewSHA256Hash

func NewSHA256Hash() string

NewSHA1Hash returns a random SHA1 hash based on a specific length

func NotNumber

func NotNumber(val string) bool

func Now

func Now() time.Time

Now returns the UTC timestamp

func OpenFile

func OpenFile(filePath string) (string, error)

func Ping

func Ping(address string, secondsTimeout int) (int64, error)

func RandomString

func RandomString(n int) string

RandomString generates a random string of n length

func RenameDirectory

func RenameDirectory(fromDir string, toDir string) error

RenameDirectory will attempt rename a directory to a new name

func SaveFile

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

func SentryErr(err error)

func SentryInit

func SentryInit(allow bool)

func SentryLogEntry

func SentryLogEntry(entry *Logger.Entry)

func Sha256Hash

func Sha256Hash(val string) string

NewSHA1Hash returns a random SHA1 hash based on a specific length

func ToFields

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

func ToInt(s interface{}) int64

ToInt converts a int to a string

func ToString

func ToString(s interface{}) string

ToString converts a int to a string

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

42

Types

type Duration

type Duration struct {
	time.Duration
}

func (Duration) Human

func (d Duration) Human() string

type Perlin

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

Perlin is the noise generator

func NewPerlin

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

func NewPerlinRandSource

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

func (*Perlin) Noise1D

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

Jump to

Keyboard shortcuts

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