nimo-shake/common/mix.go (54 lines of code) (raw):
package utils
import (
"os"
"path/filepath"
"github.com/nightlyone/lockfile"
LOG "github.com/vinllen/log4go"
)
func WritePid(id string) (err error) {
var lock lockfile.Lockfile
lock, err = lockfile.New(id)
if err != nil {
return err
}
if err = lock.TryLock(); err != nil {
return err
}
return nil
}
func WritePidById(id string, path string) error {
var dir string
var err error
if path == "" {
if dir, err = os.Getwd(); err != nil {
return err
}
} else {
dir = path
if _, err := os.Stat(dir); os.IsNotExist(err) {
os.Mkdir(dir, os.ModePerm)
}
}
if dir, err = filepath.Abs(dir); err != nil {
return err
}
pidfile := filepath.Join(dir, id) + ".pid"
if err := WritePid(pidfile); err != nil {
return err
}
return nil
}
func Welcome() {
welcome :=
`______________________________
\ \ _ ______ |
\ \ / \___-=O'/|O'/__|
\ NimoShake, here we go !! \_______\ / | / )
/ / '/-==__ _/__|/__=-| -GM
/ Alibaba Cloud / * \ | |
/ zhuzhao / (o)
------------------------------
`
startMsg := "if you have any problem, call aliyun"
LOG.Warn("\n%s%s\n\n", welcome, startMsg)
}