本文整理汇总了Golang中github.com/jwaldrip/odin/cli.Command类的典型用法代码示例。如果您正苦于以下问题:Golang Command类的具体用法?Golang Command怎么用?Golang Command使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Command类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的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)
}
开发者ID:ernado,项目名称:selectel,代码行数:35,代码来源:main.go
示例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)
}
开发者ID:jen20,项目名称:cascade,代码行数:26,代码来源:role.go
示例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
}
开发者ID:JustAdam,项目名称:metl,代码行数:32,代码来源:Run.go
示例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, "")
}
}
开发者ID:jen20,项目名称:cascade,代码行数:8,代码来源:cm.go
示例5: nodeRun
func nodeRun(c cli.Command) {
switch c.Param("action").String() {
case "list":
nodeList(c)
default:
cli.ShowUsage(c)
}
}
开发者ID:jen20,项目名称:cascade,代码行数:8,代码来源:node.go
示例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
}
开发者ID:JustAdam,项目名称:metl,代码行数:57,代码来源:Add.go
示例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))
}
}
开发者ID:JustAdam,项目名称:metl,代码行数:10,代码来源:Metl.go
示例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)
}
开发者ID:ernado,项目名称:selectel,代码行数:10,代码来源:main.go
示例9: roleRun
func roleRun(c cli.Command) {
switch c.Param("action").String() {
case "list":
roleList(c)
case "set":
roleSet(c)
default:
cli.ShowUsage(c)
}
}
开发者ID:edwardt,项目名称:cascade,代码行数:10,代码来源:role.go
示例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)
}
}
开发者ID:edwardt,项目名称:cascade,代码行数:12,代码来源:cm.go
示例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)
}
}
开发者ID:jen20,项目名称:cascade,代码行数:12,代码来源:service.go
示例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(), " "))
}
开发者ID:spekode,项目名称:odin,代码行数:7,代码来源:main.go
示例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)
}
开发者ID:ernado,项目名称:selectel,代码行数:32,代码来源:main.go
示例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)
}
开发者ID:edwardt,项目名称:cascade,代码行数:15,代码来源:role.go
示例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)
}
}
}
开发者ID:jen20,项目名称:cascade,代码行数:17,代码来源:node.go
示例16: roleRun
func roleRun(c cli.Command) {
switch c.Param("action").String() {
case "list":
roleList(c)
case "set":
roleSet(c)
case "listAll":
roleListAll(c)
case "find":
roleFind(c)
case "append":
roleAppend(c)
case "rm":
roleRm(c)
default:
cli.ShowUsage(c)
}
}
开发者ID:jen20,项目名称:cascade,代码行数:18,代码来源:role.go
示例17: cmSingle
func cmSingle(c cli.Command) {
client, _ := api.NewClient(api.DefaultConfig())
catalog := client.Catalog()
node, _, err := catalog.Node(c.Arg(0).String(), nil)
if err != nil {
log.Fatalln("err: ", err)
}
if node == nil {
log.Fatalln("node not found")
}
if node.Services["cascade"] == nil {
log.Fatalln("node not managed by cascade")
}
cmRunRoll("", c.Arg(0).String())
}
开发者ID:edwardt,项目名称:cascade,代码行数:20,代码来源:cm.go
示例18: list
func list(c cli.Command) {
var (
arglen = len(c.Args())
table = tablewriter.NewWriter(os.Stdout)
)
if arglen == 0 && (blank(container) || c.Flag("type").String() == "storage") {
containers, err := api.ContainersInfo()
if err != nil {
log.Fatal(err)
}
table.SetHeader([]string{"Name", "Objects", "Type"})
for _, cont := range containers {
v := []string{cont.Name, fmt.Sprint(cont.ObjectCount), cont.Type}
table.Append(v)
}
table.Render()
return
}
if arglen == 1 {
container = c.Arg(0).String()
}
if blank(container) {
log.Fatal(errorNotEnough)
}
objects, err := api.Container(container).ObjectsInfo()
if err != nil {
log.Fatal(err)
}
table.SetHeader([]string{"Name", "Size", "Downloaded"})
for _, object := range objects {
v := []string{object.Name, fmt.Sprint(object.Size), fmt.Sprint(object.Downloaded)}
table.Append(v)
}
table.Render()
}
开发者ID:ernado,项目名称:selectel,代码行数:35,代码来源:main.go
示例19: roleFind
func roleFind(c cli.Command) {
cmdRoles := c.Args().Strings()
if len(cmdRoles) == 0 {
log.Fatalln("Must specify a role to find")
}
if len(cmdRoles) != 1 {
// maybe we could support multiple but i don't think it's necessary
log.Fatalln("One role only is supported for `find` command")
}
role := cmdRoles[0]
allRoles, err := allNodeRoles()
if err != nil {
log.Fatalln("err: ", err)
}
fmt.Printf("All nodes containing role %s:\n\n", role)
for node, r := range allRoles {
if StrContains(r, role) {
printRole(node, r)
}
}
}
开发者ID:jen20,项目名称:cascade,代码行数:22,代码来源:role.go
示例20: styleByFlags
func styleByFlags(str string, c cli.Command) string {
if c.Flag("loudly").Get() == true {
str = louden(str)
}
if c.Flag("color").String() != "" {
str = colorize(str, c.Flag("color").String())
}
return str
}
开发者ID:spekode,项目名称:odin,代码行数:9,代码来源:main.go
注:本文中的github.com/jwaldrip/odin/cli.Command类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论