util

package
v0.2.4 Latest Latest
Warning

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

Go to latest
Published: Jun 1, 2023 License: Apache-2.0 Imports: 39 Imported by: 111

Documentation

Index

Constants

View Source
const (
	DEFAULT_LOCK = LockType(0)
	SYNC_LOCK    = LockType(1)
	DEBUG_LOCK   = LockType(2)
	MOCK_LOCK    = LockType(3)
)
View Source
const BUFFER_SIZE = 65536

Variables

This section is empty.

Functions

func BytesToString

func BytesToString(bytes []byte) string

This casting *does not* copy data. Note that casting via "string(value)" *does* copy data.

func ContextualRead added in v0.2.2

func ContextualRead(context contextpkg.Context, reader io.Reader, p []byte) (int, error)

func CopySSH

func CopySSH(host string, username string, key string, reader io.Reader, targetPath string, permissions *int64) error

func CreateSelfSignedTLSConfig added in v0.1.38

func CreateSelfSignedTLSConfig(organization string, host string) (*tls.Config, error)

func CreateTLSConfig added in v0.1.38

func CreateTLSConfig(certificate []byte, key []byte) (*tls.Config, error)

func CreateX509Certificate added in v0.1.38

func CreateX509Certificate(organization string, host string, rsa bool, ca bool) (*x509.Certificate, error)

func DoesFileExist added in v0.1.59

func DoesFileExist(path string) (bool, error)

func DumpIPAddress added in v0.1.60

func DumpIPAddress(address any)

func ExecSSH

func ExecSSH(host string, username string, key string, stdin io.Reader, command ...string) (string, error)

func Exit added in v0.1.22

func Exit(code int)

func ExitOnSIGTERM added in v0.1.33

func ExitOnSIGTERM()

func Fail

func Fail(message string)

func FailOnError

func FailOnError(err error)

func Failf

func Failf(f string, args ...any)

func FromBase64 added in v0.1.4

func FromBase64(b64 string) ([]byte, error)

func GetFileHash

func GetFileHash(path string) (string, error)

func GetGoBin added in v0.1.31

func GetGoBin() (string, error)

func GetGoPath added in v0.1.31

func GetGoPath() (string, error)

func IsFileExecutable added in v0.1.59

func IsFileExecutable(mode fs.FileMode) bool

func IsFileHidden added in v0.1.59

func IsFileHidden(path string) bool

func IsIPv6 added in v0.1.60

func IsIPv6(address string) bool

func IsUDPAddrEqual added in v0.1.60

func IsUDPAddrEqual(a *net.UDPAddr, b *net.UDPAddr) bool

func JoinIPAddressPort added in v0.1.60

func JoinIPAddressPort(address string, port int) string

func JoinQuote added in v0.1.60

func JoinQuote(strings []string, separator string) string

func JoinQuoteL added in v0.1.60

func JoinQuoteL(strings []string, separator string, lastSeparator string, coupleSeparator string) string

func MarshalMessagePack added in v0.1.62

func MarshalMessagePack(value any) ([]byte, error)

func NewContextualReadCloser added in v0.2.2

func NewContextualReadCloser(context contextpkg.Context, reader io.ReadCloser) io.ReadCloser

func NewContextualReader added in v0.2.2

func NewContextualReader(context contextpkg.Context, reader io.Reader) io.Reader

func NewMessagePackDecoder added in v0.1.62

func NewMessagePackDecoder(reader io.Reader) *msgpack.Decoder

func NewMessagePackEncoder added in v0.1.62

func NewMessagePackEncoder(writer io.Writer) *msgpack.Encoder

func NewMockLocker added in v0.1.51

func NewMockLocker() sync.Locker

func ParseX509CertPool added in v0.1.6

func ParseX509CertPool(bytes []byte) (*x509.CertPool, error)

func ParseX509Certificates added in v0.1.6

func ParseX509Certificates(bytes []byte) ([]*x509.Certificate, error)

func ReaderSize

func ReaderSize(reader io.Reader) (int64, error)

func ResetAdHocLocks added in v0.1.51

func ResetAdHocLocks()

func SanitizeFilename

func SanitizeFilename(name string) string

func SetFlagsFromEnvironment

func SetFlagsFromEnvironment(prefix string)

func SetupSignalHandler

func SetupSignalHandler() <-chan struct{}

SetupSignalHandler registered for SIGTERM and SIGINT. A stop channel is returned which is closed on one of these signals. If a second signal is caught, the program is terminated with exit code 1.

func SignX509Certificate added in v0.1.38

func SignX509Certificate(certificate *x509.Certificate, privateKey any, publicKey any) (*x509.Certificate, error)

func SortedMapStringStringKeys

func SortedMapStringStringKeys(map_ map[string]string) []string

func StringToBytes

func StringToBytes(string_ string) (bytes []byte)

This casting *does not* copy data. Note that casting via "[]byte(value)" *does* copy data.

func ToBase64 added in v0.1.4

func ToBase64(bytes []byte) string

func ToBroadcastIPAddress added in v0.1.60

func ToBroadcastIPAddress(address string) (string, error)

func ToBytes added in v0.1.61

func ToBytes(content any) []byte

func ToDromedaryCase added in v0.1.61

func ToDromedaryCase(name string) string

func ToKebabCase added in v0.1.61

func ToKebabCase(name string) string

func ToRawTerminal added in v0.1.63

func ToRawTerminal(f func() error)

func ToReachableIPAddress added in v0.1.60

func ToReachableIPAddress(address string) (string, error)

func ToSnakeCase added in v0.1.61

func ToSnakeCase(name string) string

func ToString added in v0.1.59

func ToString(value any) string

func ToStrings added in v0.1.60

func ToStrings(values []any) []string

func Touch added in v0.1.62

func Touch(path string, permissions fs.FileMode, dirPermissions fs.FileMode) error

func UnmarshalMessagePack added in v0.1.62

func UnmarshalMessagePack(data []byte, value any) error

func WriteNewline added in v0.1.27

func WriteNewline(writer io.Writer) error

Types

type BufferedWriter added in v0.1.22

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

func NewBufferedWriter added in v0.1.22

func NewBufferedWriter(writer io.Writer, size int) BufferedWriter

func (BufferedWriter) Close added in v0.1.22

func (self BufferedWriter) Close() error

io.Closer interface

func (BufferedWriter) Write added in v0.1.22

func (self BufferedWriter) Write(p []byte) (int, error)

io.Writer interface

type ChannelReader added in v0.1.59

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

func NewChannelReader added in v0.1.59

func NewChannelReader(ch chan []byte) *ChannelReader

func (*ChannelReader) Read added in v0.1.59

func (self *ChannelReader) Read(p []byte) (n int, err error)

io.Reader interface

type ChannelWriter added in v0.1.57

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

func NewChannelWriter added in v0.1.57

func NewChannelWriter(ch chan []byte) *ChannelWriter

func (*ChannelWriter) Write added in v0.1.57

func (self *ChannelWriter) Write(p []byte) (int, error)

io.Writer interface

type ContextualReadCloser added in v0.2.2

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

func (ContextualReadCloser) Close added in v0.2.2

func (self ContextualReadCloser) Close() error

io.Closer interface

func (*ContextualReadCloser) Read added in v0.2.2

func (self *ContextualReadCloser) Read(p []byte) (int, error)

io.Reader interface

type ContextualReader added in v0.2.2

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

func (*ContextualReader) Read added in v0.2.2

func (self *ContextualReader) Read(p []byte) (int, error)

io.Reader interface

type CoordinatedWork added in v0.1.52

type CoordinatedWork struct {
	sync.Map
}

func NewCoordinatedWork added in v0.1.52

func NewCoordinatedWork() *CoordinatedWork

func (*CoordinatedWork) Start added in v0.1.52

func (self *CoordinatedWork) Start(context contextpkg.Context, key string) (Promise, bool)

type ExitFunctionHandle added in v0.1.22

type ExitFunctionHandle uint64

func OnExit added in v0.1.22

func OnExit(exitFunction func()) ExitFunctionHandle

func OnExitError added in v0.1.50

func OnExitError(exitFunction func() error) ExitFunctionHandle

func (ExitFunctionHandle) Cancel added in v0.1.22

func (self ExitFunctionHandle) Cancel()

type ForceHTTPSRoundTripper added in v0.1.4

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

func NewForceHTTPSRoundTripper added in v0.1.4

func NewForceHTTPSRoundTripper(roundTripper http.RoundTripper) *ForceHTTPSRoundTripper

func (*ForceHTTPSRoundTripper) RoundTrip added in v0.1.4

func (self *ForceHTTPSRoundTripper) RoundTrip(request *http.Request) (*http.Response, error)

http.RoundTripper interface

type LockType added in v0.1.51

type LockType int

type LockableEntity added in v0.1.51

type LockableEntity interface {
	GetEntityLock() RWLocker
}

type MockLocker added in v0.1.51

type MockLocker struct{}

func (MockLocker) Lock added in v0.1.51

func (self MockLocker) Lock()

sync.Locker interface

func (MockLocker) Unlock added in v0.1.51

func (self MockLocker) Unlock()

sync.Locker interface

type MockRWLocker added in v0.1.51

type MockRWLocker struct {
	MockLocker
}

func (MockRWLocker) RLock added in v0.1.51

func (self MockRWLocker) RLock()

RWLocker interface

func (MockRWLocker) RLocker added in v0.1.51

func (self MockRWLocker) RLocker() sync.Locker

RWLocker interface

func (MockRWLocker) RUnlock added in v0.1.51

func (self MockRWLocker) RUnlock()

RWLocker interface

type NamedPipe added in v0.1.58

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

func NewTempNamedPipe added in v0.1.58

func NewTempNamedPipe(writer io.Writer, mode uint32) (*NamedPipe, error)

func (*NamedPipe) Close added in v0.1.58

func (self *NamedPipe) Close() error

io.Closer interface

func (*NamedPipe) Write added in v0.1.58

func (self *NamedPipe) Write(p []byte) (int, error)

io.Writer interface

type Promise added in v0.1.52

type Promise chan struct{}

func NewPromise added in v0.1.52

func NewPromise() Promise

func (Promise) Release added in v0.1.52

func (self Promise) Release()

func (Promise) Wait added in v0.1.52

func (self Promise) Wait(context contextpkg.Context) error

type RWLocker added in v0.1.51

type RWLocker interface {
	sync.Locker
	RLock()
	RUnlock()
	RLocker() sync.Locker
}

func GetAdHocLock added in v0.1.51

func GetAdHocLock(pointer any, type_ LockType) RWLocker

Warning: Because pointers can be re-used after the resource is freed, there is no way for us to guarantee ad-hoc locks would not be reused Thus this facililty should only be used for objects with a known and managed life span.

func GetEntityLock added in v0.1.51

func GetEntityLock(entity any) RWLocker

func NewDebugRWLocker added in v0.1.51

func NewDebugRWLocker() RWLocker

func NewDefaultRWLocker added in v0.1.51

func NewDefaultRWLocker() RWLocker

func NewMockRWLocker added in v0.1.51

func NewMockRWLocker() RWLocker

func NewRWLocker added in v0.1.51

func NewRWLocker(type_ LockType) RWLocker

func NewSyncRWLocker added in v0.1.52

func NewSyncRWLocker() RWLocker

type SyncedWriter added in v0.1.22

type SyncedWriter struct {
	Writer io.Writer
	// contains filtered or unexported fields
}

func NewSyncedWriter added in v0.1.22

func NewSyncedWriter(writer io.Writer) *SyncedWriter

func (*SyncedWriter) Close added in v0.1.22

func (self *SyncedWriter) Close() error

io.Closer interface

func (*SyncedWriter) Write added in v0.1.22

func (self *SyncedWriter) Write(p []byte) (int, error)

io.Writer interface

type TarEncoder

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

func NewTarEncoder

func NewTarEncoder(reader io.Reader, name string, size int64) *TarEncoder

func (*TarEncoder) Drain

func (self *TarEncoder) Drain()

func (*TarEncoder) Encode

func (self *TarEncoder) Encode() io.Reader

type TestLogWriter added in v0.1.51

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

func NewTestLogWriter added in v0.1.51

func NewTestLogWriter(t *testing.T) *TestLogWriter

func (*TestLogWriter) Write added in v0.1.51

func (self *TestLogWriter) Write(p []byte) (n int, err error)

io.Writer interface

Jump to

Keyboard shortcuts

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