goutil

package module
v1.0.4 Latest Latest
Warning

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

Go to latest
Published: Sep 7, 2022 License: MIT Imports: 21 Imported by: 0

README

Go Regex

donation link

A simple utility package for golang.

This module simply adds a variety of useful functions in an easy to use way.

Installation


  go get github.com/AspieSoft/goutil

Usage


import (
  "github.com/AspieSoft/goutil"
)

func main(){
  goutil.JoinPath("root", "file") // a safer way to join 2 file paths without backtracking

  goutil.Contains([]any, any) // checks if an array contains a value

  // simple AES-CFB Encryption
  encrypted := goutil.Encrypt("my message", "password")
  goutil.Decrypt(encrypted, "password")

  // simple gzip compression for strings
  compressed := goutil.Compress("my long string")
  goutil.Decompress(compressed)

  // watch a directory recursively
  goutil.WatchDir("my/folder", &goutil.Watcher{
    FileChange: func(path string, op string){
      // do something when a file changes
      path // the file path the change happened to
      op // the change operation
    },

    DirAdd: func(path string, op string){
      // do something when a directory is added
      // return false to prevent that directory from being watched
      return true
    },

    Remove: func(path string, op string){
      // do something when a file or directory is removed
      // return false to prevent that directory from no longer being watched
      return true
    },

    Any: func(path string, op string){
      // do something every time something happenes
    },
  })
}

Documentation

Index

Constants

This section is empty.

Variables

View Source
var VarType map[string]reflect.Type

Functions

func CleanArray

func CleanArray(data []interface{}) []interface{}

Runs CleanStr on an array CleanStr: Sanitizes a string to valid UTF-8

func CleanByte added in v1.0.1

func CleanByte(b []byte) []byte

Sanitizes a []byte to valid UTF-8

func CleanJSON

func CleanJSON(val interface{}) interface{}

Runs CleanStr on a complex json object recursively CleanStr: Sanitizes a string to valid UTF-8

func CleanMap

func CleanMap(data map[string]interface{}) map[string]interface{}

Runs CleanStr on a map[string] CleanStr: Sanitizes a string to valid UTF-8

func CleanStr

func CleanStr(str string) string

Sanitizes a string to valid UTF-8

func Compress

func Compress[T interface{ string | []byte }](msg T) (string, error)

Gzip compression for a string

func Contains

func Contains[T any](search []T, value T) bool

Returns true if an array contains a value

func ContainsMap

func ContainsMap[T Hashable, J any](search map[T]J, value J) bool

Returns true if a map contains a value

func ContainsMapKey

func ContainsMapKey[T Hashable, J any](search map[T]J, key T) bool

Returns true if a map contains a key

func DecodeJSON

func DecodeJSON(data io.Reader) (map[string]interface{}, error)

Useful for decoding a JSON output from the body of an http request goutil.DecodeJSON(r.Body)

func Decompress

func Decompress[T interface{ string | []byte }](str T) (string, error)

Gzip decompression for a string

func Decrypt

func Decrypt[T interface{ string | []byte }, J interface{ string | []byte }](text T, key J) ([]byte, error)

AES-CFB Decryption

func Encrypt

func Encrypt[T interface{ string | []byte }, J interface{ string | []byte }](text T, key J) (string, error)

AES-CFB Encryption

func EscapeHTML

func EscapeHTML[T interface{ string | []byte }](html T) T

Replaces HTML characters with html entities Also prevents & from results

func EscapeHTMLArgs

func EscapeHTMLArgs[T interface{ string | []byte }](html T) T

Escapes quotes and backslashes for use within HTML quotes

func FormatMemoryUsage

func FormatMemoryUsage(b uint64) float64

Converts bytes to megabytes

func GetFileFromParent

func GetFileFromParent[T interface{ string | []byte }](root T, start T, search string) (string, bool)

Checks if the parent (or sub parent) directory of a file contains a specific file or folder root: the highest grandparent to check before quitting start: the lowest level to start searching from (if a directory is passed, it will not be included in your search) search: what file you want to search fro

func GetLinuxInstaller added in v1.0.3

func GetLinuxInstaller(man []string) string

Attempt to find out what package manager a linux distro is using or has available

func HasLinuxPkg added in v1.0.3

func HasLinuxPkg(pkg []string) bool

Attempt to check if a linux package is installed

func InstallLinuxPkg added in v1.0.3

func InstallLinuxPkg(pkg []string, man ...string)

Attempt to install a linux package this method will also resolve the sudo command and ask for a user password if needed this method will not attempt to run an install, if it finds the package is already installed

func IsZeroOfUnderlyingType

func IsZeroOfUnderlyingType(x interface{}) bool

func JoinPath

func JoinPath[T interface{ string | []byte }](path ...T) (string, error)

Joins multiple file types with safety from backtracking

func ParseJson

func ParseJson[T interface{ string | []byte }](b T) (map[string]interface{}, error)

Converts a json string into a map of strings

func StringifyJSON

func StringifyJSON(data interface{}, ind ...int) ([]byte, error)

Converts a map or array to a JSON string

func ToInt

func ToInt(res interface{}) int

Converts multiple types to an int accepts: int, int32, int64, float64, float32, string, byteArray, byte

func ToString

func ToString(res interface{}) string

Converts multiple types to a string accepts: string, byteArray, byte, int32, int, int64, float64, float32

func WatchDir

func WatchDir(root string, cb *Watcher)

Watch the files in a directory and its subdirectories for changes

Types

type Hashable

type Hashable interface {
	int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 | uintptr | float32 | float64 | string | complex64 | complex128
}

type Watcher

type Watcher struct {
	FileChange func(path string, op string)
	DirAdd     func(path string, op string) (addWatcher bool)
	Remove     func(path string, op string) (removeWatcher bool)
	Any        func(path string, op string)
}

A watcher instance for the WatchDir function

Directories

Path Synopsis
bash module
cache module
compress
brotli module
gzip module
smaz module
cputemp module
crypt module
fs module
syncmap module

Jump to

Keyboard shortcuts

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