/
cmd.go
64 lines (53 loc) · 1.34 KB
/
cmd.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package main
import (
"fmt"
"github.com/gonuts/commander"
"github.com/gonuts/flag"
)
func run_any_cmd(cmd *commander.Command, args []string) error {
//n := cmd.Name()
//fmt.Printf("%s: args: %v\n", n, args)
//fmt.Printf("%s: flags: %v\n", n, cmd.Flag.NArg())
msg, err := g_ami.Execute(args...)
if err != nil {
return err
}
for i, row := range msg.Result.Rows {
fmt.Printf("row=%d\n", i)
m := row.Value()
for k, v := range m {
fmt.Printf(" -> %s=%v\n", k, v)
}
}
return nil
}
func ami_make_cmd_cmd() *commander.Command {
cmd := &commander.Command{
Run: run_any_cmd,
UsageLine: "cmd <AmiCommand> <AmiArg0> <AmiArg1>...",
Short: "run an arbitrary AMI command",
Long: `
cmd sends an arbitrary AMI command to the AMI server.
ex:
$ go-ami cmd TCGetPackageInfo fullPackageName="/External/pyAMI" processingStep="production" project="TagCollector" repositoryName="AtlasOfflineRepository"
row=0
-> computingDescription=0
-> created=2012-08-31 15:41:53 +0000 UTC
-> physicsDescription=
-> archive=0
-> groupOriginOfPackage=AtlasRelease
-> fullPackageName=/External/pyAMI
-> comment=
-> packageName=pyAMI
-> repositoryName=AtlasOfflineRepository
-> path=/External/
-> softwareDomain=
-> defaultType=leaf
row=1
[...]
`,
Flag: *flag.NewFlagSet("ami-cmd", flag.ExitOnError),
}
return cmd
}
// EOF