本文整理匯總了Golang中github.com/toolkits/file.IsExist函數的典型用法代碼示例。如果您正苦於以下問題:Golang IsExist函數的具體用法?Golang IsExist怎麽用?Golang IsExist使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了IsExist函數的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: ParseConfig
func ParseConfig(cfg string) {
if cfg == "" {
log.Fatalln("use -c to specify configuration file")
}
if !file.IsExist(cfg) {
log.Fatalln("config file:", cfg, "is not existent")
}
ConfigFile = cfg
configContent, err := file.ToTrimString(cfg)
if err != nil {
log.Fatalln("read config file:", cfg, "fail:", err)
}
var c GlobalConfig
err = json.Unmarshal([]byte(configContent), &c)
if err != nil {
log.Fatalln("parse config file:", cfg, "fail:", err)
}
if !file.IsExist(c.ExternalNodes) {
log.Printf("WARN: the external_nodes file [%s] is not exist!", c.ExternalNodes)
c.ExternalNodes = ""
}
configLock.Lock()
defer configLock.Unlock()
config = &c
log.Println("read config file:", cfg, "successfully")
}
示例2: StopAgentOf
func StopAgentOf(agentName, newVersion string) error {
agentDir := path.Join(g.SelfDir, agentName)
versionFile := path.Join(agentDir, ".version")
if !file.IsExist(versionFile) {
log.Printf("WARN: %s is nonexistent", versionFile)
return nil
}
version, err := file.ToTrimString(versionFile)
if err != nil {
log.Printf("WARN: read %s fail %s", version, err)
return nil
}
if version == newVersion {
// do nothing
return nil
}
versionDir := path.Join(agentDir, version)
if !file.IsExist(versionDir) {
log.Printf("WARN: %s nonexistent", versionDir)
return nil
}
return ControlStopIn(versionDir)
}
示例3: configPluginRoutes
func configPluginRoutes() {
http.HandleFunc("/plugin/update", func(w http.ResponseWriter, r *http.Request) {
if !g.Config().Plugin.Enabled {
w.Write([]byte("plugin not enabled"))
return
}
dir := g.Config().Plugin.Dir
parentDir := file.Dir(dir)
file.InsureDir(parentDir)
if file.IsExist(dir) {
// git pull
cmd := exec.Command("git", "pull")
cmd.Dir = dir
err := cmd.Run()
if err != nil {
w.Write([]byte(fmt.Sprintf("git pull in dir:%s fail. error: %s", dir, err)))
return
}
} else {
// git clone
cmd := exec.Command("git", "clone", g.Config().Plugin.Git, file.Basename(dir))
cmd.Dir = parentDir
err := cmd.Run()
if err != nil {
w.Write([]byte(fmt.Sprintf("git clone in dir:%s fail. error: %s", parentDir, err)))
return
}
}
w.Write([]byte("success"))
})
http.HandleFunc("/plugin/reset", func(w http.ResponseWriter, r *http.Request) {
if !g.Config().Plugin.Enabled {
w.Write([]byte("plugin not enabled"))
return
}
dir := g.Config().Plugin.Dir
if file.IsExist(dir) {
cmd := exec.Command("git", "reset", "--hard")
cmd.Dir = dir
err := cmd.Run()
if err != nil {
w.Write([]byte(fmt.Sprintf("git reset --hard in dir:%s fail. error: %s", dir, err)))
return
}
}
w.Write([]byte("success"))
})
http.HandleFunc("/plugins", func(w http.ResponseWriter, r *http.Request) {
//TODO: not thread safe
RenderDataJson(w, plugins.Plugins)
})
}
示例4: AllProcs
func AllProcs() (ps []*Proc, err error) {
var dirs []string
dirs, err = file.DirsUnder("/proc")
if err != nil {
return
}
size := len(dirs)
if size == 0 {
return
}
for i := 0; i < size; i++ {
pid, e := strconv.Atoi(dirs[i])
if e != nil {
continue
}
statusFile := fmt.Sprintf("/proc/%d/status", pid)
cmdlineFile := fmt.Sprintf("/proc/%d/cmdline", pid)
if !file.IsExist(statusFile) || !file.IsExist(cmdlineFile) {
continue
}
name, e := ReadName(statusFile)
if e != nil {
continue
}
cmdlineBytes, e := file.ToBytes(cmdlineFile)
if e != nil {
continue
}
cmdlineBytesLen := len(cmdlineBytes)
if cmdlineBytesLen == 0 {
continue
}
noNut := make([]byte, 0, cmdlineBytesLen)
for j := 0; j < cmdlineBytesLen; j++ {
if cmdlineBytes[j] != 0 {
noNut = append(noNut, cmdlineBytes[j])
}
}
p := Proc{Pid: pid, Name: name, Cmdline: string(noNut)}
ps = append(ps, &p)
}
return
}
示例5: BuildHeartbeatRequest
func BuildHeartbeatRequest(hostname string, agentDirs []string) model.HeartbeatRequest {
req := model.HeartbeatRequest{Hostname: hostname}
realAgents := []*model.RealAgent{}
now := time.Now().Unix()
for _, agentDir := range agentDirs {
// 如果目錄下沒有.version,我們認為這根本不是一個agent
versionFile := path.Join(g.SelfDir, agentDir, ".version")
if !f.IsExist(versionFile) {
continue
}
version, err := f.ToTrimString(versionFile)
if err != nil {
log.Printf("read %s/.version fail: %v", agentDir, err)
continue
}
controlFile := path.Join(g.SelfDir, agentDir, version, "control")
if !f.IsExist(controlFile) {
log.Printf("%s is nonexistent", controlFile)
continue
}
cmd := exec.Command("./control", "status")
cmd.Dir = path.Join(g.SelfDir, agentDir, version)
bs, err := cmd.CombinedOutput()
status := ""
if err != nil {
status = fmt.Sprintf("exec `./control status` fail: %s", err)
} else {
status = strings.TrimSpace(string(bs))
}
realAgent := &model.RealAgent{
Name: agentDir,
Version: version,
Status: status,
Timestamp: now,
}
realAgents = append(realAgents, realAgent)
}
req.RealAgents = realAgents
return req
}
示例6: FilesReady
func FilesReady(da *model.DesiredAgent) bool {
if !file.IsExist(da.Md5Filepath) {
return false
}
if !file.IsExist(da.TarballFilepath) {
return false
}
if !file.IsExist(da.ControlFilepath) {
return false
}
return utils.Md5sumCheck(da.AgentVersionDir, da.Md5Filename)
}
示例7: ParseConfig
func ParseConfig(cfg string) {
if cfg == "" {
log.Fatalln("use -c to specify one config file")
}
if !file.IsExist(cfg) {
log.Fatalln("config file:", cfg, "not exist")
}
ConfigFile = cfg
configContent, err := file.ToTrimString(cfg)
if err != nil {
log.Fatalln("read config file:", cfg, "failed:", err)
}
var c GlobalConfig
err = json.Unmarshal([]byte(configContent), &c)
if err != nil {
log.Fatalln("parse config file:", cfg, "failed:", err)
}
// check
if !checkConfig(c) {
log.Fatalln("check config file:", cfg, "failed")
}
configLock.Lock()
defer configLock.Unlock()
config = &c
log.Println("g.ParseConfig ok, file ", cfg)
}
示例8: StopDesiredAgent
func StopDesiredAgent(da *model.DesiredAgent) {
if !file.IsExist(da.ControlFilepath) {
return
}
ControlStopIn(da.AgentVersionDir)
}
示例9: ParseConfig
func ParseConfig(cfg string) {
if cfg == "" {
log.Fatalln("use -c to specify configuration file")
}
if !file.IsExist(cfg) {
log.Fatalln("config file:", cfg, "is not existent. maybe you need `mv cfg.example.json cfg.json`")
}
ConfigFile = cfg
configContent, err := file.ToTrimString(cfg)
if err != nil {
log.Fatalln("read config file:", cfg, "fail:", err)
}
var c GlobalConfig
err = json.Unmarshal([]byte(configContent), &c)
if err != nil {
log.Fatalln("parse config file:", cfg, "fail:", err)
}
// split cluster config
c.Judge.Cluster2 = formatClusterItems(c.Judge.Cluster)
c.Graph.Cluster2 = formatClusterItems(c.Graph.Cluster)
c.Graph.ClusterMigrating2 = formatClusterItems(c.Graph.ClusterMigrating)
configLock.Lock()
defer configLock.Unlock()
config = &c
log.Println("g.ParseConfig ok, file ", cfg)
}
示例10: ParseConfig
func ParseConfig(cfg string) {
if cfg == "" {
log.Fatalln("config file not specified: use -c $filename")
}
if !file.IsExist(cfg) {
log.Fatalln("config file specified not found:", cfg)
}
ConfigFile = cfg
configContent, err := file.ToTrimString(cfg)
if err != nil {
log.Fatalln("read config file", cfg, "error:", err.Error())
}
var c GlobalConfig
err = json.Unmarshal([]byte(configContent), &c)
if err != nil {
log.Fatalln("parse config file", cfg, "error:", err.Error())
}
if c.Migrate.Enabled && len(c.Migrate.Cluster) == 0 {
c.Migrate.Enabled = false
}
// set config
atomic.StorePointer(&ptr, unsafe.Pointer(&c))
log.Println("g.ParseConfig ok, file", cfg)
}
示例11: ParseConfig
func ParseConfig(cfg string) {
if cfg == "" {
log.Fatalln("use -c to specify configuration file")
}
if !file.IsExist(cfg) {
log.Fatalln("config file:", cfg, "is not existent. maybe you need `mv cfg.example.json cfg.json`")
}
ConfigFile = cfg
configContent, err := file.ToTrimString(cfg)
if err != nil {
log.Fatalln("read config file:", cfg, "fail:", err)
}
var c GlobalConfig
err = json.Unmarshal([]byte(configContent), &c)
if err != nil {
log.Fatalln("parse config file:", cfg, "fail:", err)
}
lock.Lock()
defer lock.Unlock()
config = &c
log.Println("read config file:", cfg, "successfully")
}
示例12: ParseConfig
// Reference to Open-Falcon's ParseConfig()
func ParseConfig(cfg string) {
if cfg == "" {
log.Fatalln("Config file not specified: use -c $filename")
}
if !file.IsExist(cfg) {
log.Fatalln("Config file specified not found:", cfg)
}
configContent, err := file.ToTrimString(cfg)
if err != nil {
log.Fatalln("Read config file", cfg, "error:", err.Error())
}
var c GlobalConfig
err = json.Unmarshal([]byte(configContent), &c)
if err != nil {
log.Fatalln("Parse config file", cfg, "error:", err.Error())
}
// set config
configLock.Lock()
defer configLock.Unlock()
Config = &c
printDebug(2, "ParseConfig:", cfg, "[DONE.]")
}
示例13: LoadAddrs
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
}
示例14: ParseConfig
func ParseConfig(cfg string) {
if cfg == "" {
log.Fatalln("use -c to specify configuration file")
}
if !file.IsExist(cfg) {
log.Fatalln("config file:", cfg, "is not existent")
}
ConfigFile = cfg
configContent, err := file.ToTrimString(cfg)
if err != nil {
log.Fatalln("read config file:", cfg, "fail:", err)
}
var c GlobalConfig
err = json.Unmarshal([]byte(configContent), &c)
if err != nil {
log.Fatalln("parse config file:", cfg, "fail:", err)
}
configLock.Lock()
defer configLock.Unlock()
config = &c
logger.SetLevel(config.LogLevel)
log.Println("read config file:", cfg, "successfully")
}
示例15: ParseConfig
func ParseConfig(cfg string) error {
if cfg == "" {
return fmt.Errorf("use -c to specify configuration file")
}
if !file.IsExist(cfg) {
return fmt.Errorf("config file %s is nonexistent", cfg)
}
ConfigFile = cfg
configContent, err := file.ToTrimString(cfg)
if err != nil {
return fmt.Errorf("read config file %s fail %s", cfg, err)
}
var c GlobalConfig
err = json.Unmarshal([]byte(configContent), &c)
if err != nil {
return fmt.Errorf("parse config file %s fail %s", cfg, err)
}
configLock.Lock()
defer configLock.Unlock()
config = &c
log.Println("read config file:", cfg, "successfully")
return nil
}