util

package
v0.3.2 Latest Latest
Warning

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

Go to latest
Published: Mar 31, 2020 License: BSD-3-Clause Imports: 26 Imported by: 0

Documentation

Overview

Package par implements parallel execution helpers.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Bash

func Bash(script string) (string, error)

func BuildRequest

func BuildRequest(path string) *gorequest.SuperAgent

func CloneRepo

func CloneRepo(srcUrl, srcVer string) (string, error)

func CopyDir

func CopyDir(src string, dst string) error

Dir copies a whole directory recursively

func CopyFile

func CopyFile(src, dst string) error

File copies a single file from src to dst

func Exec

func Exec(args []string) (string, error)

func FindIdFromName

func FindIdFromName(basePath, name, listOutput string, res interface{}) (string, error)

func GetAcctAndName

func GetAcctAndName() (string, string)

func IsValidUUID

func IsValidUUID(uuid string) bool

func OldTarFiles

func OldTarFiles(files []string, src string, writers ...io.Writer) error

func OldUntarFiles

func OldUntarFiles(files []string, dst string, r io.Reader) error

func RenderDir

func RenderDir(src string, dst string, data interface{}) error

Dir copies a whole directory recursively

func RenderDirNameSub

func RenderDirNameSub(src string, dst string, data interface{}) error

Dir copies a whole directory recursively

func RenderFile

func RenderFile(src, dst string, data interface{}) error

File copies a single file from src to dst

func RenderFileNameSub

func RenderFileNameSub(src, dst string, data interface{}) error

func RenderString

func RenderString(template string, data interface{}) (string, error)

func SendRequest

func SendRequest(queryTemplate string, vars interface{}) (interface{}, error)

func ServerHost

func ServerHost() string

func SimpleGet

func SimpleGet(path string) error

func SwapDelimits

func SwapDelimits(content, fromLL, fromLR, fromSL, fromSR, toLL, toLR, toSL, toSR string) string

func TarBallFiles

func TarBallFiles(files []string, src, tarFile string) (err error)

func TarFiles

func TarFiles(files []string, src string) (data []byte, err error)

func TestConfigAuth

func TestConfigAuth() error

func UntarFiles

func UntarFiles(files []string, dst string, content []byte) error

func UnzlibFiles

func UnzlibFiles(files []string, dst string, r io.Reader) error

func UserHomeDir

func UserHomeDir() string

Types

type Cache added in v0.3.1

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

Cache runs an action once per key and caches the result.

func (*Cache) Clear added in v0.3.1

func (c *Cache) Clear()

Clear removes all entries in the cache.

Concurrent calls to Get may return old values. Concurrent calls to Do may return old values or store results in entries that have been deleted.

TODO(jayconrod): Delete this after the package cache clearing functions in internal/load have been removed.

func (*Cache) Delete added in v0.3.1

func (c *Cache) Delete(key interface{})

Delete removes an entry from the map. It is safe to call Delete for an entry that does not exist. Delete will return quickly, even if the result for a key is still being computed; the computation will finish, but the result won't be accessible through the cache.

TODO(jayconrod): Delete this after the package cache clearing functions in internal/load have been removed.

func (*Cache) DeleteIf added in v0.3.1

func (c *Cache) DeleteIf(pred func(key interface{}) bool)

DeleteIf calls pred for each key in the map. If pred returns true for a key, DeleteIf removes the corresponding entry. If the result for a key is still being computed, DeleteIf will remove the entry without waiting for the computation to finish. The result won't be accessible through the cache.

TODO(jayconrod): Delete this after the package cache clearing functions in internal/load have been removed.

func (*Cache) Do added in v0.3.1

func (c *Cache) Do(key interface{}, f func() interface{}) interface{}

Do calls the function f if and only if Do is being called for the first time with this key. No call to Do with a given key returns until the one call to f returns. Do returns the value returned by the one call to f.

func (*Cache) Get added in v0.3.1

func (c *Cache) Get(key interface{}) interface{}

Get returns the cached result associated with key. It returns nil if there is no such result. If the result for key is being computed, Get does not wait for the computation to finish.

type Work added in v0.3.1

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

Work manages a set of work items to be executed in parallel, at most once each. The items in the set must all be valid map keys.

func (*Work) Add added in v0.3.1

func (w *Work) Add(item interface{})

Add adds item to the work set, if it hasn't already been added.

func (*Work) Do added in v0.3.1

func (w *Work) Do(n int, f func(item interface{}))

Do runs f in parallel on items from the work set, with at most n invocations of f running at a time. It returns when everything added to the work set has been processed. At least one item should have been added to the work set before calling Do (or else Do returns immediately), but it is allowed for f(item) to add new items to the set. Do should only be used once on a given Work.

Jump to

Keyboard shortcuts

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