mirror of
https://github.com/pgsty/minio.git
synced 2026-08-10 08:13:28 +03:00
Add Diskattrmap, Scsiattrmap for probed scsi devices
Additional changes - Use ``iota`` for constants - Remove unncessary C header files - ``new-cmd`` now depends on codegangsta cli
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"os"
|
||||
"path"
|
||||
"text/template"
|
||||
"time"
|
||||
|
||||
"github.com/codegangsta/cli"
|
||||
"github.com/minio-io/minio/pkg/utils"
|
||||
)
|
||||
|
||||
type source struct {
|
||||
Name string
|
||||
TempLate template.Template
|
||||
}
|
||||
|
||||
const (
|
||||
// Relative path from GOPATH default
|
||||
TEMPLATEREPO = "/src/github.com/minio-io/minio/cmd/new-cmd/templates/"
|
||||
)
|
||||
|
||||
type option struct {
|
||||
Name string
|
||||
Definename string
|
||||
Functionname string
|
||||
}
|
||||
|
||||
type command struct {
|
||||
Name string
|
||||
Usage string
|
||||
Month string
|
||||
Year int
|
||||
Options []option
|
||||
}
|
||||
|
||||
func (f source) get(commandName string, definition command) error {
|
||||
wr, err := os.Create(path.Join(commandName, f.Name))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
defer wr.Close()
|
||||
return f.TempLate.Execute(wr, definition)
|
||||
}
|
||||
|
||||
func initCommand(commandname, usage string, inputOptions []string) command {
|
||||
year, month, _ := time.Now().Date()
|
||||
return command{
|
||||
Name: commandname,
|
||||
Usage: usage,
|
||||
Month: month.String(),
|
||||
Year: year,
|
||||
Options: initOptions(inputOptions),
|
||||
}
|
||||
}
|
||||
|
||||
func initOptions(inputOptions []string) []option {
|
||||
var options []option
|
||||
|
||||
if inputOptions[0] == "" {
|
||||
return options
|
||||
}
|
||||
|
||||
for _, name := range inputOptions {
|
||||
option := option{
|
||||
Name: name,
|
||||
Definename: utils.FirstUpper(name),
|
||||
Functionname: "do" + utils.FirstUpper(name),
|
||||
}
|
||||
options = append(options, option)
|
||||
}
|
||||
|
||||
return options
|
||||
}
|
||||
|
||||
func main() {
|
||||
app := cli.NewApp()
|
||||
app.Name = "new-cmd"
|
||||
app.Usage = "Is a stub builder for new commands, options"
|
||||
var flags = []cli.Flag{
|
||||
cli.StringFlag{
|
||||
Name: "options",
|
||||
Value: "",
|
||||
Usage: "Command-separated list of options to build",
|
||||
},
|
||||
cli.StringFlag{
|
||||
Name: "path",
|
||||
Value: TEMPLATEREPO,
|
||||
Usage: "Non standard templates path",
|
||||
},
|
||||
cli.StringFlag{
|
||||
Name: "usage",
|
||||
Value: "",
|
||||
Usage: "A one liner explaining the new command being built",
|
||||
},
|
||||
}
|
||||
app.Flags = flags
|
||||
app.Action = parseInput
|
||||
app.Author = "Minio"
|
||||
app.Run(os.Args)
|
||||
}
|
||||
Reference in New Issue
Block a user