utils

package
v6.25.1 Latest Latest
Warning

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

Go to latest
Published: Jan 9, 2025 License: MIT Imports: 11 Imported by: 3

Documentation

Index

Constants

View Source
const (
	// ErrBadAbsFilePath constant is returned when a file path is not absolute
	ErrBadAbsFilePath = "absolute file path is invalid - must include leading slash and may not include trailing slash"
	// ErrBadRelFilePath constant is returned when a file path is not relative
	ErrBadRelFilePath = "relative file path is invalid - may not include leading or trailing slashes"
	// ErrBadAbsLocationPath constant is returned when a file path is not absolute
	ErrBadAbsLocationPath = "absolute location path is invalid - must include leading and trailing slashes"
	// ErrBadRelLocationPath constant is returned when a file path is not relative
	ErrBadRelLocationPath = "relative location path is invalid - may not include leading slash but must include trailing slash"
	// ErrBadPrefix constant is returned when a prefix is not relative or ends in / or is empty
	ErrBadPrefix = "prefix is invalid - may not include leading or trailing slashes and may not be empty"
	// TouchCopyMinBufferSize min buffer size used in TouchCopyBuffered in bytes
	TouchCopyMinBufferSize = 262144
)

Variables

This section is empty.

Functions

func EncodeAuthority added in v6.15.0

func EncodeAuthority(rawAuthority string) string

EncodeAuthority takes an unencoded URI authority string and encodes it

func EncodeURI added in v6.14.3

func EncodeURI(scheme, username, hostport, path string) string

EncodeURI ensure that a uri is properly percent-encoded

func EncodeUserInfo added in v6.15.0

func EncodeUserInfo(rawUserInfo string) string

EncodeUserInfo takes an unencoded URI authority userinfo string and encodes it

func EnsureLeadingSlash

func EnsureLeadingSlash(dir string) string

EnsureLeadingSlash is like EnsureTrailingSlash except that it adds the leading slash if needed.

func EnsureTrailingSlash

func EnsureTrailingSlash(dir string) string

EnsureTrailingSlash is like AddTrailingSlash but will only ever use / since it's use for web uri's, never a Windows OS path.

func GetFileURI

func GetFileURI(f vfs.File) string

GetFileURI returns a File URI

func GetLocationURI

func GetLocationURI(l vfs.Location) string

GetLocationURI returns a Location URI

func PathToURI added in v6.1.0

func PathToURI(p string) (string, error)

PathToURI takes a relative or absolute path and returns an OS URI. We assume non-scheme path is an OS File or Location. We assume volume(URI authority) is empty. We assume relative paths are relative to the pwd (program's working directory)

/absolute/path/to/file.txt : file:///absolute/path/to/file.txt /some/absolute/path/ : file:///absolute/path/ relative/path/to/file.txt : file:///absolute/path/with/relative/path/to/file.txt relative/path/ : file:///absolute/path/with/relative/path/

func Ptr added in v6.19.0

func Ptr[T any](value T) *T

Ptr returns a pointer to the given value.

func RemoveLeadingSlash

func RemoveLeadingSlash(path string) string

RemoveLeadingSlash removes leading slash, if any

func RemoveTrailingSlash

func RemoveTrailingSlash(path string) string

RemoveTrailingSlash removes trailing slash, if any

func SeekTo added in v6.13.0

func SeekTo(length, position, offset int64, whence int) (int64, error)

SeekTo is a helper function for Seek. It takes the current position, offset, whence, and length of the file and returns the new position. It also checks for invalid offsets and returns an error if one is found.

func TouchCopy

func TouchCopy(writer io.Writer, reader io.Reader) error

TouchCopy is a wrapper around io.Copy which ensures that even empty source files (reader) will get written as an empty file. It guarantees a Write() call on the target file. Deprecated: Use TouchCopyBuffer Instead

func TouchCopyBuffered

func TouchCopyBuffered(writer io.Writer, reader io.Reader, bufferSize int) error

TouchCopyBuffered is a wrapper around io.CopyBuffer which ensures that even empty source files (reader) will get written as an empty file. It guarantees a Write() call on the target file. bufferSize is in bytes and if is less than TouchCopyMinBufferSize will result in a buffer of size TouchCopyMinBufferSize bytes. If bufferSize is > TouchCopyMinBufferSize it will result in a buffer of size bufferSize bytes

func UpdateLastModifiedByMoving

func UpdateLastModifiedByMoving(file vfs.File) error

UpdateLastModifiedByMoving is used by some backends' Touch() method when a file already exists.

func ValidateAbsoluteFilePath

func ValidateAbsoluteFilePath(name string) error

ValidateAbsoluteFilePath ensures that a file path has a leading slash but not a trailing slash

func ValidateAbsoluteLocationPath

func ValidateAbsoluteLocationPath(name string) error

ValidateAbsoluteLocationPath ensure that a file path has both leading and trailing slashes

func ValidatePrefix added in v6.8.0

func ValidatePrefix(prefix string) error

ValidatePrefix ensures that a prefix path has neither leading nor trailing slashes may not be empty but unlike relative file path, *may* be simply "."

func ValidateRelativeFilePath

func ValidateRelativeFilePath(name string) error

ValidateRelativeFilePath ensures that a file path has neither leading nor trailing slashes

func ValidateRelativeLocationPath

func ValidateRelativeLocationPath(name string) error

ValidateRelativeLocationPath ensure that a file path has no leading slash but has a trailing slash

func WrapCloseError added in v6.13.0

func WrapCloseError(err error) error

WrapCloseError returns a wrapped close error

func WrapReadError added in v6.13.0

func WrapReadError(err error) error

WrapReadError returns a wrapped read error

func WrapSeekError added in v6.13.0

func WrapSeekError(err error) error

WrapSeekError returns a wrapped seek error

func WrapWriteError added in v6.13.0

func WrapWriteError(err error) error

WrapWriteError returns a wrapped write error

Types

type Authority

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

Authority represents host, port and userinfo (user/pass) in a URI

func NewAuthority

func NewAuthority(authority string) (Authority, error)

NewAuthority initializes Authority struct by parsing authority string.

func (Authority) Host

func (a Authority) Host() string

Host returns the host portion of an authority

func (Authority) HostPortStr added in v6.8.0

func (a Authority) HostPortStr() string

HostPortStr returns a concatenated string of host and port from authority, separated by a colon, ie "host.com:1234"

func (Authority) Port added in v6.8.0

func (a Authority) Port() uint16

Port returns the port portion of an authority

func (Authority) String

func (a Authority) String() string

String() returns a string representation of authority. It does not include password per https://tools.ietf.org/html/rfc3986#section-3.2.1

Applications should not render as clear text any data after the first colon (":") character found within a userinfo
subcomponent unless the data after the colon is the empty string (indicating no password).

func (Authority) UserInfo added in v6.8.0

func (a Authority) UserInfo() UserInfo

UserInfo returns the userinfo section of authority. userinfo is username and password(deprecated).

type UserInfo added in v6.8.0

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

UserInfo represents user/pass portion of a URI

func (UserInfo) Password added in v6.8.0

func (u UserInfo) Password() string

Password returns the password of a URI UserInfo. May be an empty string.

func (UserInfo) Username added in v6.8.0

func (u UserInfo) Username() string

Username returns the username of a URI UserInfo. May be an empty string.

Jump to

Keyboard shortcuts

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