Documentation ¶
Index ¶
- Variables
- func AbsPath(inPath string) string
- func CheckPreconditions(w http.ResponseWriter, r *http.Request, etag string) (done bool)
- func CleanUTF8(s string) string
- func CloneURL(u *url.URL) *url.URL
- func DirExists(name string) (bool, error)
- func DurationFuzzing(d time.Duration, variation float64) time.Duration
- func FileExists(name string) (bool, error)
- func IsInArray(s string, a []string) bool
- func LimitWriter(w io.Writer, n int64) io.Writer
- func LimitWriterDiscard(w io.Writer, n int64) io.Writer
- func RandomString(n int) string
- func RandomStringFast(rng *rand.Rand, n int) string
- func ReadCloser(r io.Reader, c func() error) io.ReadCloser
- func ServeContent(w http.ResponseWriter, r *http.Request, contentType string, size int64, ...)
- func SplitTrimString(s, sep string) []string
- func StripPort(domain string) string
- func TrimStrings(strs []string) []string
- func UniqueStrings(strs []string) []string
- func UserHomeDir() string
- func WriteCloser(w io.Writer, c func() error) io.WriteCloser
- type GroupShutdown
- type Shutdowner
Constants ¶
This section is empty.
Variables ¶
var NopShutdown = NewGroupShutdown()
NopShutdown implements the Shutdowner interface but does not execute any process on shutdown.
Functions ¶
func CheckPreconditions ¶
CheckPreconditions evaluates request preconditions based only on the Etag values.
func DurationFuzzing ¶
DurationFuzzing returns a duration that is near the given duration, but randomized to avoid patterns like several cache entries that expires at the same time.
func FileExists ¶
FileExists returns whether or not the file exists on the current file system.
func LimitWriter ¶
LimitWriter works like io.LimitReader. It writes at most n bytes to the underlying Writer. It returns io.ErrShortWrite if more than n bytes are attempted to be written.
func LimitWriterDiscard ¶
LimitWriterDiscard works like io.LimitReader. It writes at most n bytes to the underlying Writer. It does not return any error if more than n bytes are attempted to be written, the data is discarded.
func RandomString ¶
RandomString returns a string of random alpha characters of the specified length.
func RandomStringFast ¶
RandomStringFast returns a random string containing printable ascii characters: [0-9a-zA-Z_-]{n}. Each character encodes 6bits of entropy. To avoid wasting entropy, it is better to create a string whose length is a multiple of 10. For instance a 20 bytes string will encode 120 bits of entropy.
func ReadCloser ¶
func ReadCloser(r io.Reader, c func() error) io.ReadCloser
ReadCloser returns an io.ReadCloser from a io.Reader and a close method.
func ServeContent ¶
func ServeContent(w http.ResponseWriter, r *http.Request, contentType string, size int64, content io.Reader)
ServeContent replies to the request using the content in the provided reader. The Content-Length and Content-Type headers are added with the provided values.
func SplitTrimString ¶
SplitTrimString slices s into all substrings a s separated by sep, like strings.Split. In addition it will trim all those substrings and filter out the empty ones.
func TrimStrings ¶
TrimStrings trim all strings and filter out the empty ones.
func UniqueStrings ¶
UniqueStrings returns a filtered slice without string duplicates.
func WriteCloser ¶
func WriteCloser(w io.Writer, c func() error) io.WriteCloser
WriteCloser returns an io.WriteCloser from a io.Writer and a close method.
Types ¶
type GroupShutdown ¶
type GroupShutdown struct {
// contains filtered or unexported fields
}
GroupShutdown allow to group multiple Shutdowner into a single one.
func NewGroupShutdown ¶
func NewGroupShutdown(s ...Shutdowner) *GroupShutdown
NewGroupShutdown returns a new GroupShutdown
type Shutdowner ¶
Shutdowner is an interface with a Shutdown method to gracefully shutdown a running process.