本文整理匯總了Golang中github.com/jwaldrip/odin/cli.Command類的典型用法代碼示例。如果您正苦於以下問題:Golang Command類的具體用法?Golang Command怎麽用?Golang Command使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
在下文中一共展示了Command類的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: download
func download(c cli.Command) {
var (
arglen = len(c.Args())
objectName string
path = c.Flag("path").String()
)
switch arglen {
case 1:
objectName = c.Arg(0).String()
case 2:
objectName = c.Arg(1).String()
container = c.Arg(0).String()
}
if blank(container) || blank(objectName) {
log.Fatal(errorNotEnough)
}
if blank(path) {
path = objectName
}
reader, err := api.Container(container).Object(objectName).GetReader()
if err != nil {
log.Fatal(err)
}
defer reader.Close()
fmt.Printf("downloading %s->%s from %s\n", objectName, path, container)
f, err := os.Create(path)
if err != nil {
log.Fatal(err)
}
n, err := io.Copy(f, reader)
if err != nil {
log.Fatal(err)
}
fmt.Printf("downloaded %s, %d bytes\n", objectName, n)
}
示例2: roleRm
func roleRm(c cli.Command) {
rmRoles := c.Args().Strings()
if len(rmRoles) == 0 {
log.Fatalln("Must specify some role[s] to remove")
}
nodeRoles, err := allNodeRoles()
if err != nil {
log.Fatalln("err: ", err)
}
myKey, err := selfKey()
if err != nil {
log.Fatalln("err: ", err)
}
var finalSet []string
for _, role := range nodeRoles[myKey] {
if !StrContains(rmRoles, role) {
finalSet = append(finalSet, role)
} else {
fmt.Printf("removing role `%s`\n", role)
}
}
roleActualSet(finalSet, c)
}
示例3: Run
func (v *Run) Run(c cli.Command) {
jobName := c.Param("jobname").String()
log.WithFields(
log.Fields{
"pkg": "command",
"func": "Run",
"job": jobName,
},
).Info("Starting job")
j := job.New(metl.GetJobFilePath(jobName))
j.Lock()
jf, err := j.Fetch()
if err != nil {
log.Fatal("Error fetching job:", err)
}
jf.Run()
j.Unlock()
j.Done(jf)
// log stats, notify of errors etc
// notify of any errors
// log stats to dashboard, number of processed, rejected rows etc.
// if parsing option is empty then, we just download the file
}
示例4: cmRoll
func cmRoll(c cli.Command) {
role := c.Flag("role").String()
if len(role) == 0 && c.Flag("force").Get() != true {
log.Fatalln("Must specify -f option to run with no `role` filter specified")
} else {
cmRunRoll(role, "")
}
}
示例5: nodeRun
func nodeRun(c cli.Command) {
switch c.Param("action").String() {
case "list":
nodeList(c)
default:
cli.ShowUsage(c)
}
}
示例6: Run
func (v *Add) Run(c cli.Command) {
jobName := c.Param("jobname").String()
var job job.Job
if _, err := toml.DecodeFile(metl.GetJobFilePath(jobName)+".toml", &job); err != nil {
log.Fatal(err)
}
cronfile := filepath.Join(metl.Etl.GetLocalStoragePath(), crontabFile)
file, err := os.Open(cronfile)
if err != nil {
file, err = os.Create(cronfile)
if err != nil {
log.WithFields(
log.Fields{
"filename": cronfile,
},
).Fatal("Unable to create cronfile: ", err)
}
}
defer file.Close()
err = syscall.Flock(int(file.Fd()), syscall.LOCK_EX)
if err != nil {
log.Fatal("Failed to lock file")
}
defer func() {
err = syscall.Flock(int(file.Fd()), syscall.LOCK_UN)
if err != nil {
log.Fatal("Failed to unlock file")
}
}()
buffer := make([]string, 0)
if err = jobIsInFile(file, jobName, &buffer); err != nil {
log.Fatal(err)
}
buffer = append(buffer, fmt.Sprintf("%s %s >> %s%s.log", cmd, jobName, logDir, jobName))
tmpf, err := ioutil.TempFile(metl.Etl.GetLocalStoragePath(), "tmp")
if err != nil {
log.Fatal("Unable to create temporary file.")
}
for _, line := range buffer {
if _, err := tmpf.WriteString(line + "\n"); err != nil {
log.Fatal("Unable to write to temporary file")
}
}
if err := os.Rename(tmpf.Name(), cronfile); err != nil {
log.Fatal("Failed to rename temporary lock file:", err)
}
// execute /usr/bin/env crontab cronfile
}
示例7: runner
func (etl *metl) runner(c cli.Command) {
etl.preRunnerTasks()
runnable := c.Name()
if runner, ok := etl.runnables[runnable]; ok {
runner.Run(c)
} else {
panic(fmt.Sprintf("Runnable %s not defined!", runnable))
}
}
示例8: create
func create(c cli.Command) {
if len(c.Args()) == 0 {
log.Fatal(errorNotEnough)
}
var name = c.Arg(0).String()
if _, err := api.CreateContainer(name, false); err != nil {
log.Fatal(err)
}
fmt.Printf("created container %s\n", name)
}
示例9: roleRun
func roleRun(c cli.Command) {
switch c.Param("action").String() {
case "list":
roleList(c)
case "set":
roleSet(c)
default:
cli.ShowUsage(c)
}
}
示例10: cmRun
func cmRun(c cli.Command) {
switch c.Param("action").String() {
case "local":
cmLocal(c)
case "roll":
cmRoll(c)
case "single":
cmSingle(c)
default:
cli.ShowUsage(c)
}
}
示例11: serviceRun
func serviceRun(c cli.Command) {
switch c.Param("action").String() {
case "list":
serviceList(c)
case "local":
serviceLocal(c)
case "find":
serviceFind(c)
default:
cli.ShowUsage(c)
}
}
示例12: greetGreetee
func greetGreetee(c cli.Command) {
greeting := c.Parent().Param("greeting")
greetee := c.Param("greetee")
str := fmt.Sprintf("%s %s", greeting, greetee)
str = styleByFlags(str, c)
c.Println(str, strings.Join(c.Args().Strings(), " "))
}
示例13: upload
func upload(c cli.Command) {
var path string
switch len(c.Args()) {
case 1:
path = c.Arg(0).String()
case 2:
container = c.Arg(0).String()
path = c.Arg(1).String()
}
if blank(container) || blank(path) {
log.Fatal(errorNotEnough)
}
f, err := os.Open(path)
if err != nil {
log.Fatal(err)
}
stat, err := os.Stat(path)
if err != nil {
log.Fatal(err)
}
ext := filepath.Ext(path)
mimetype := mime.TypeByExtension(ext)
bar := pb.New64(stat.Size()).SetUnits(pb.U_BYTES)
bar.Start()
reader := io.TeeReader(f, bar)
if err := api.Container(container).Upload(reader, stat.Name(), mimetype); err != nil {
log.Fatal(err)
}
fmt.Printf("uploaded to %s\n", container)
}
示例14: roleSet
func roleSet(c cli.Command) {
client, _ := api.NewClient(api.DefaultConfig())
agent := client.Agent()
reg := &api.AgentServiceRegistration{
Name: "cascade",
Tags: c.Args().Strings(),
}
if err := agent.ServiceRegister(reg); err != nil {
log.Fatalln("err: ", err)
}
roleList(c)
}
示例15: nodeList
func nodeList(c cli.Command) {
client, _ := api.NewClient(api.DefaultConfig())
catalog := client.Catalog()
nodes, _, err := catalog.Service("cascade", c.Flag("role").String(), nil)
if err != nil {
log.Fatalln("Err: ", err)
}
for _, node := range nodes {
fmt.Println(node.Node, node.Address+":")
for _, role := range node.ServiceTags {
fmt.Println(" -", role)
}
}
}