本文整理汇总了Golang中github.com/dropbox/godropbox/errors.Wrapf函数的典型用法代码示例。如果您正苦于以下问题:Golang Wrapf函数的具体用法?Golang Wrapf怎么用?Golang Wrapf使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Wrapf函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: extract
func (s *Source) extract() (err error) {
var cmd *exec.Cmd
if strings.HasSuffix(s.Path, ".tar") {
cmd = exec.Command("tar", "--no-same-owner", "-xf", s.Path)
} else if strings.HasSuffix(s.Path, ".zip") {
cmd = exec.Command("unzip", s.Path)
} else {
split := strings.Split(s.Path, ".")
if len(split) > 2 && split[len(split)-2] == "tar" {
cmd = exec.Command("tar", "--no-same-owner", "-xf", s.Path)
} else {
return
}
}
cmd.Dir = s.Output
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
err = cmd.Run()
if err != nil {
err = &GetError{
errors.Wrapf(err, "builder: Failed to extract source '%s'",
s.Source),
}
return
}
return
}
开发者ID:pacur,项目名称:pacur,代码行数:31,代码来源:source.go
示例2: Init
func (p *Project) Init() (err error) {
p.MirrorRoot = filepath.Join(p.Root, "mirror")
p.BuildRoot = filepath.Join(p.Root, "mirror.tmp")
p.confPath = filepath.Join(p.Root, "pacur.json")
exists, err := utils.Exists(p.confPath)
if err != nil {
return
}
if exists {
dataByt, e := utils.ReadFile(p.confPath)
if e != nil {
err = e
return
}
data := conf{}
err = json.Unmarshal(dataByt, &data)
if err != nil {
err = &ParseError{
errors.Wrapf(err,
"project: Failed to parse project conf '%s'", p.confPath),
}
return
}
p.Name = data.Name
} else {
p.Name = "pacur"
}
return
}
开发者ID:pacur,项目名称:pacur,代码行数:35,代码来源:project.go
示例3: Page
func Page(q PageQuery) (*PageResponse, error) {
if q.ID == 0 {
return nil, errors.New("a page id is required")
}
resp, err := http.Get(q.urlString())
if err != nil {
return nil, errors.Wrap(err, "could not get http response")
}
defer resp.Body.Close()
if resp.StatusCode != 200 {
return nil, errors.Wrapf(errors.New(resp.Status), "StatusCode: %d; URL: %s", resp.StatusCode, q.urlString())
}
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
return nil, errors.Wrap(err, "could not read http response body")
}
var response PageResponse
if err := json.Unmarshal(body, &response); err != nil {
return nil, errors.Wrap(err, "could not unmarshal http response")
}
return &response, nil
}
开发者ID:heindl,项目名称:eol,代码行数:29,代码来源:pages.go
示例4: Project
func Project() (err error) {
path, err := os.Getwd()
if err != nil {
err = &FileError{
errors.Wrapf(err, "cmd: Failed to get working directory"),
}
return
}
proj := &project.Project{
Root: path,
}
err = proj.Init()
if err != nil {
return
}
cmd := flag.Arg(1)
switch cmd {
case "init":
err = proj.InitProject()
case "build":
err = proj.Build(flag.Arg(2))
case "repo":
err = proj.Repo(flag.Arg(2))
default:
err = &UnknownCommand{
errors.Newf("cmd: Unknown cmd '%s'", cmd),
}
}
return
}
开发者ID:pacur,项目名称:pacur,代码行数:33,代码来源:project.go
示例5: ExecInput
func ExecInput(dir, input, name string, arg ...string) (err error) {
cmd := exec.Command(name, arg...)
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
stdin, err := cmd.StdinPipe()
if err != nil {
err = &ExecError{
errors.Wrapf(err, "utils: Failed to get stdin in exec '%s'", name),
}
return
}
defer stdin.Close()
if dir != "" {
cmd.Dir = dir
}
err = cmd.Start()
if err != nil {
err = &ExecError{
errors.Wrapf(err, "utils: Failed to exec '%s'", name),
}
return
}
_, err = io.WriteString(stdin, input)
if err != nil {
err = &ExecError{
errors.Wrapf(err, "utils: Failed to write stdin in exec '%s'",
name),
}
return
}
err = cmd.Wait()
if err != nil {
err = &ExecError{
errors.Wrapf(err, "utils: Failed to exec '%s'", name),
}
return
}
return
}
开发者ID:pacur,项目名称:pacur,代码行数:45,代码来源:proc.go
示例6: connectionError
func (c *ShardedClient) connectionError(shard int, err error) error {
if err == nil {
return errors.Newf(
"Connection unavailable for memcache shard %d", shard)
}
return errors.Wrapf(
err,
"Connection unavailable for memcache shard %d", shard)
}
开发者ID:pasin30055,项目名称:godropbox,代码行数:9,代码来源:sharded_client.go
示例7: request
func request(url string, tokens []string) ([]byte, error) {
if len(tokens) == 0 {
return nil, errors.New("a NOAA token is required to draw data from the API. Request one here: http://www.ncdc.noaa.gov/cdo-web/token.")
}
client := &http.Client{}
req, err := http.NewRequest("GET", url, nil)
if err != nil {
return nil, errors.Wrapf(err, "could not build request for url[%s]", url)
}
req.Header.Set("token", tokens[0])
response, err := client.Do(req)
if err != nil {
return nil, errors.Wrapf(err, "could not do request for url[%s]", url)
}
defer response.Body.Close()
// "status" : "429", "message" : "This token has reached its temporary request limit of 1000 per day."
// Rotate through tokens to try and find another.
if response.StatusCode == 429 {
if len(tokens) == 1 {
return nil, errors.New("All NOAA API tokens have reached their request limit for today. Add more or come back tomorrow.")
}
tokens = tokens[1:]
return request(url, tokens)
}
if response.StatusCode != 200 {
return nil, errors.Newf("NOAA API response statusCode is %d", response.StatusCode)
}
return ioutil.ReadAll(response.Body)
}
开发者ID:heindl,项目名称:raincollector,代码行数:42,代码来源:request.go
示例8: RemoveAll
func RemoveAll(path string) (err error) {
err = os.RemoveAll(path)
if err != nil {
err = &WriteError{
errors.Wrapf(err, "utils: Failed to remove '%s'", path),
}
return
}
return
}
开发者ID:pacur,项目名称:pacur,代码行数:11,代码来源:file.go
示例9: Chmod
func Chmod(path string, perm os.FileMode) (err error) {
err = os.Chmod(path, perm)
if err != nil {
err = &WriteError{
errors.Wrapf(err, "utils: Failed to chmod '%s'", path),
}
return
}
return
}
开发者ID:pacur,项目名称:pacur,代码行数:11,代码来源:file.go
示例10: Open
func Open(path string) (file *os.File, err error) {
file, err = os.Open(path)
if err != nil {
err = &ReadError{
errors.Wrapf(err, "utils: Failed to open file '%s'", path),
}
return
}
return
}
开发者ID:pacur,项目名称:pacur,代码行数:11,代码来源:file.go
示例11: ReadDir
func ReadDir(path string) (items []os.FileInfo, err error) {
items, err = ioutil.ReadDir(path)
if err != nil {
err = &ReadError{
errors.Wrapf(err, "utils: Failed to read dir '%s'", path),
}
return
}
return
}
开发者ID:pacur,项目名称:pacur,代码行数:11,代码来源:file.go
示例12: ReadFile
func ReadFile(path string) (data []byte, err error) {
data, err = ioutil.ReadFile(path)
if err != nil {
err = &ReadError{
errors.Wrapf(err, "utils: Failed to read file '%s'", path),
}
return
}
return
}
开发者ID:pacur,项目名称:pacur,代码行数:11,代码来源:file.go
示例13: MkdirAll
func MkdirAll(path string) (err error) {
err = os.MkdirAll(path, 0755)
if err != nil {
err = &constants.WriteError{
errors.Wrapf(err, "utils: Failed to create '%s'", path),
}
return
}
return
}
开发者ID:postfix,项目名称:pritunl-auth,代码行数:11,代码来源:file.go
示例14: Create
func Create(path string) (file *os.File, err error) {
file, err = os.Create(path)
if err != nil {
err = &constants.WriteError{
errors.Wrapf(err, "utils: Failed to create '%s'", path),
}
return
}
return
}
开发者ID:postfix,项目名称:pritunl-auth,代码行数:11,代码来源:file.go
示例15: Read
func Read(path string) (data string, err error) {
dataByt, err := ioutil.ReadFile(path)
if err != nil {
err = &constants.ReadError{
errors.Wrapf(err, "utils: Failed to read '%s'", path),
}
return
}
data = string(dataByt)
return
}
开发者ID:postfix,项目名称:pritunl-auth,代码行数:12,代码来源:file.go
示例16: getRpmPath
func (r *Redhat) getRpmPath() (path string, err error) {
archs, err := ioutil.ReadDir(r.rpmsDir)
if err != nil {
err = &BuildError{
errors.Wrapf(err, "redhat: Failed to find rpms arch from '%s'",
r.rpmsDir),
}
return
}
if len(archs) < 1 {
err = &BuildError{
errors.Newf("redhat: Failed to find rpm arch from '%s'",
r.rpmsDir),
}
return
}
archPath := filepath.Join(r.rpmsDir, archs[0].Name())
rpms, err := ioutil.ReadDir(archPath)
if err != nil {
err = &BuildError{
errors.Wrapf(err, "redhat: Failed to find rpms from '%s'",
r.rpmsDir),
}
return
}
if len(rpms) < 1 {
err = &BuildError{
errors.Newf("redhat: Failed to find rpm from '%s'"),
}
return
}
path = filepath.Join(archPath, rpms[0].Name())
return
}
开发者ID:pacur,项目名称:pacur,代码行数:38,代码来源:redhat.go
示例17: request
func (s *SearchQuery) request(page int) error {
select {
case <-s.tmb.Dying():
return nil
default:
}
resp, err := http.Get(s.url(page))
if err != nil {
return errors.Wrap(err, "could not get http response")
}
defer resp.Body.Close()
if resp.StatusCode != 200 {
return errors.Wrapf(errors.New(resp.Status), "StatusCode: %d; URL: %s", resp.StatusCode, s.url(page))
}
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
return errors.Wrap(err, "could not read http response body")
}
var response results
if err := json.Unmarshal(body, &response); err != nil {
return errors.Wrap(err, "could not unmarshal http response")
}
for i := range response.Results {
s.ch <- response.Results[i]
}
if page > 1 {
return nil
}
// If this the first page, schedule the remaining requests
totalRequests := math.Ceil(response.TotalResults / response.ItemsPerPage)
var wg sync.WaitGroup
for i := 2; i <= int(totalRequests); i++ {
func(count int) {
wg.Add(1)
go s.tmb.Go(func() error {
defer wg.Done()
return s.request(count)
})
}(i)
}
wg.Wait()
return nil
}
开发者ID:heindl,项目名称:eol,代码行数:49,代码来源:search.go
示例18: Exists
func Exists(path string) (exists bool, err error) {
_, err = os.Stat(path)
if os.IsNotExist(err) {
err = nil
} else if err != nil {
err = errortypes.ReadError{
errors.Wrapf(err, "utils: Failed to stat file '%s'", path),
}
return
} else {
exists = true
}
return
}
开发者ID:pritunl,项目名称:pritunl-link,代码行数:15,代码来源:file.go
示例19: HttpGet
func HttpGet(url, output string) (err error) {
cmd := exec.Command("wget", url, "-O", output)
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
err = cmd.Run()
if err != nil {
err = &HttpError{
errors.Wrapf(err, "utils: Failed to get '%s'", url),
}
return
}
return
}
开发者ID:pacur,项目名称:pacur,代码行数:15,代码来源:utils.go
示例20: ExecSilent
func ExecSilent(dir, name string, args ...string) (err error) {
cmd := exec.Command(name, args...)
if dir != "" {
cmd.Dir = dir
}
_, err = cmd.CombinedOutput()
if err != nil {
err = &constants.ExecError{
errors.Wrapf(err, "utils: Failed to exec %s %s", name, args),
}
return
}
return
}
开发者ID:pritunl,项目名称:pritunl-link,代码行数:16,代码来源:proc.go
注:本文中的github.com/dropbox/godropbox/errors.Wrapf函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论