func Md5sumCheck(runUser, workdir, tarfile, md5file string) error { var cmd *exec.Cmd var md5Actual string if "darwin" == runtime.GOOS { cmd = BuildCommand(runUser, "md5", "-q", path.Join(workdir, tarfile)) } else { cmd = BuildCommand(runUser, "md5sum", path.Join(workdir, tarfile)) } cmd.Dir = file.SelfDir() bs, err := cmd.CombinedOutput() if err != nil { return fmt.Errorf("cd %s; md5sum -c %s fail", workdir, md5file) } strMd5file, _ := file.ToString(path.Join(workdir, md5file)) if "" == strMd5file { return fmt.Errorf("md5file is empty") } if "darwin" == runtime.GOOS { md5Actual = strings.Replace(string(bs), "\n", "", -1) } else { md5Actual = strings.Fields(string(bs))[0] } md5Except := strings.Fields(strMd5file)[0] if md5Actual == md5Except { return nil } return fmt.Errorf("md5Actual:%s, md5Except:%s<<<===end", md5Actual, md5Except) }
func (t *RingBackend) LoadAddrs(f string) error { if !file.IsExist(f) { return errors.New("backends file is not exist") } file_content, err := file.ToString(f) if err != nil { return err } file_content = strings.Trim(file_content, " \n\t") lines := strings.Split(file_content, "\n") if len(lines) == 0 { return errors.New("empty backends") } tmp_addrs := make(map[string][]string) for _, line := range lines { fields := strings.Fields(line) size := len(fields) if size < 2 { logger.Warn("invalid backend %s", line) continue } name := fields[0] addr := fields[1:size] tmp_addrs[name] = addr } t.Lock() defer t.Unlock() t.Addrs = tmp_addrs return nil }
func (this *MainController) Log() { idStr := this.Ctx.Input.Param(":id") buildId, err := strconv.ParseInt(idStr, 10, 64) build := models.Build{Id: buildId} err = orm.NewOrm().Read(&build) if err != nil { this.ServeErrJson(err.Error()) return } content, err := filetool.ToString(fmt.Sprintf("%s/%d.log", g.LogDir, buildId)) if err != nil { this.ServeErrJson(err.Error()) return } content = strings.Replace(content, "\n", "<br>", -1) this.ServeDataJson(map[string]interface{}{"build": build, "log": content}) }