#100 name flag fixed
This commit is contained in:
parent
b3bb5c9e91
commit
227871d171
10
cmd.go
10
cmd.go
|
@ -62,8 +62,8 @@ func (r *realize) check() error {
|
||||||
// Add a new project
|
// Add a new project
|
||||||
func (r *realize) add(p *cli.Context) error {
|
func (r *realize) add(p *cli.Context) error {
|
||||||
project := Project{
|
project := Project{
|
||||||
Name: r.Settings.name(p.String("name"), p.String("path")),
|
Name: filepath.Base(filepath.Clean(p.String("path"))),
|
||||||
Path: r.Settings.path(p.String("path")),
|
Path: filepath.Clean(p.String("path")),
|
||||||
Cmds: Cmds{
|
Cmds: Cmds{
|
||||||
Vet: Cmd{
|
Vet: Cmd{
|
||||||
Status: p.Bool("vet"),
|
Status: p.Bool("vet"),
|
||||||
|
@ -101,6 +101,7 @@ func (r *realize) add(p *cli.Context) error {
|
||||||
|
|
||||||
// Run launches the toolchain for each project
|
// Run launches the toolchain for each project
|
||||||
func (r *realize) run(p *cli.Context) error {
|
func (r *realize) run(p *cli.Context) error {
|
||||||
|
var match bool
|
||||||
err := r.check()
|
err := r.check()
|
||||||
if err == nil {
|
if err == nil {
|
||||||
// loop projects
|
// loop projects
|
||||||
|
@ -214,10 +215,13 @@ func (r *realize) run(p *cli.Context) error {
|
||||||
} else {
|
} else {
|
||||||
r.Schema[k].base = filepath.Join(wd, elm.path)
|
r.Schema[k].base = filepath.Join(wd, elm.path)
|
||||||
}
|
}
|
||||||
|
match = true
|
||||||
go r.Schema[k].watch()
|
go r.Schema[k].watch()
|
||||||
}
|
}
|
||||||
|
if !match {
|
||||||
|
return errors.New("there is no project with the given name")
|
||||||
|
}
|
||||||
wg.Wait()
|
wg.Wait()
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
36
realize.go
36
realize.go
|
@ -8,6 +8,7 @@ import (
|
||||||
"gopkg.in/urfave/cli.v2"
|
"gopkg.in/urfave/cli.v2"
|
||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
|
"path/filepath"
|
||||||
"strconv"
|
"strconv"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
@ -52,7 +53,7 @@ func main() {
|
||||||
Aliases: []string{"r"},
|
Aliases: []string{"r"},
|
||||||
Description: "Start a toolchain on a project or a list of projects. If not exist a config file it creates a new one",
|
Description: "Start a toolchain on a project or a list of projects. If not exist a config file it creates a new one",
|
||||||
Flags: []cli.Flag{
|
Flags: []cli.Flag{
|
||||||
&cli.StringFlag{Name: "path", Aliases: []string{"p"}, Value: "", Usage: "Project base path"},
|
&cli.StringFlag{Name: "path", Aliases: []string{"p"}, Value: wdir(), Usage: "Project base path"},
|
||||||
&cli.StringFlag{Name: "name", Aliases: []string{"n"}, Value: "", Usage: "Run a project by its name"},
|
&cli.StringFlag{Name: "name", Aliases: []string{"n"}, Value: "", Usage: "Run a project by its name"},
|
||||||
&cli.BoolFlag{Name: "fmt", Aliases: []string{"f"}, Value: false, Usage: "Enable go fmt"},
|
&cli.BoolFlag{Name: "fmt", Aliases: []string{"f"}, Value: false, Usage: "Enable go fmt"},
|
||||||
&cli.BoolFlag{Name: "vet", Aliases: []string{"v"}, Value: false, Usage: "Enable go vet"},
|
&cli.BoolFlag{Name: "vet", Aliases: []string{"v"}, Value: false, Usage: "Enable go vet"},
|
||||||
|
@ -68,7 +69,7 @@ func main() {
|
||||||
if err := r.insert(p); err != nil {
|
if err := r.insert(p); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if !p.Bool("no-config") {
|
if !p.Bool("no-config") && p.String("name") == ""{
|
||||||
if err := r.Settings.record(r); err != nil {
|
if err := r.Settings.record(r); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -86,7 +87,7 @@ func main() {
|
||||||
Aliases: []string{"a"},
|
Aliases: []string{"a"},
|
||||||
Description: "Add a project to an existing config file or create a new one",
|
Description: "Add a project to an existing config file or create a new one",
|
||||||
Flags: []cli.Flag{
|
Flags: []cli.Flag{
|
||||||
&cli.StringFlag{Name: "path", Aliases: []string{"p"}, Value: "", Usage: "Project base path"},
|
&cli.StringFlag{Name: "path", Aliases: []string{"p"}, Value: wdir(), Usage: "Project base path"},
|
||||||
&cli.BoolFlag{Name: "fmt", Aliases: []string{"f"}, Value: false, Usage: "Enable go fmt"},
|
&cli.BoolFlag{Name: "fmt", Aliases: []string{"f"}, Value: false, Usage: "Enable go fmt"},
|
||||||
&cli.BoolFlag{Name: "vet", Aliases: []string{"v"}, Value: false, Usage: "Enable go vet"},
|
&cli.BoolFlag{Name: "vet", Aliases: []string{"v"}, Value: false, Usage: "Enable go vet"},
|
||||||
&cli.BoolFlag{Name: "test", Aliases: []string{"t"}, Value: false, Usage: "Enable go test"},
|
&cli.BoolFlag{Name: "test", Aliases: []string{"t"}, Value: false, Usage: "Enable go test"},
|
||||||
|
@ -102,7 +103,7 @@ func main() {
|
||||||
if err := r.Settings.record(r); err != nil {
|
if err := r.Settings.record(r); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
fmt.Fprintln(output, prefix(green.bold("Your project was successfully added")))
|
log.Println(prefix(green.bold("Your project was successfully added")))
|
||||||
return nil
|
return nil
|
||||||
},
|
},
|
||||||
Before: before,
|
Before: before,
|
||||||
|
@ -116,7 +117,7 @@ func main() {
|
||||||
interact.Run(&interact.Interact{
|
interact.Run(&interact.Interact{
|
||||||
Before: func(context interact.Context) error {
|
Before: func(context interact.Context) error {
|
||||||
context.SetErr(red.bold("INVALID INPUT"))
|
context.SetErr(red.bold("INVALID INPUT"))
|
||||||
context.SetPrfx(color.Output, yellow.bold("[")+"REALIZE"+yellow.bold("]"))
|
context.SetPrfx(color.Output, yellow.regular("[") + time.Now().Format("15:04:05") + yellow.regular("]") + yellow.bold("[")+"REALIZE"+yellow.bold("]"))
|
||||||
return nil
|
return nil
|
||||||
},
|
},
|
||||||
Questions: []*interact.Question{
|
Questions: []*interact.Question{
|
||||||
|
@ -361,7 +362,7 @@ func main() {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Before: func(d interact.Context) error {
|
Before: func(d interact.Context) error {
|
||||||
dir, _ := os.Getwd()
|
dir := wdir()
|
||||||
d.SetDef(dir, green.regular("("+dir+")"))
|
d.SetDef(dir, green.regular("("+dir+")"))
|
||||||
return nil
|
return nil
|
||||||
},
|
},
|
||||||
|
@ -374,7 +375,7 @@ func main() {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return d.Err()
|
return d.Err()
|
||||||
}
|
}
|
||||||
r.Schema[len(r.Schema)-1].Path = r.Settings.path(val)
|
r.Schema[len(r.Schema)-1].Path = filepath.Clean(val)
|
||||||
return nil
|
return nil
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -1045,7 +1046,7 @@ func main() {
|
||||||
if err := r.Settings.record(r); err != nil {
|
if err := r.Settings.record(r); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
fmt.Fprintln(output, prefix(green.bold(" Your configuration was successful")))
|
log.Println(prefix(green.bold("Your configuration was successful")))
|
||||||
return nil
|
return nil
|
||||||
},
|
},
|
||||||
Before: before,
|
Before: before,
|
||||||
|
@ -1065,7 +1066,7 @@ func main() {
|
||||||
if err := r.Settings.record(r); err != nil {
|
if err := r.Settings.record(r); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
fmt.Fprintln(output, prefix(green.bold("Your project was successfully removed")))
|
log.Println(prefix(green.bold("Your project was successfully removed")))
|
||||||
return nil
|
return nil
|
||||||
},
|
},
|
||||||
Before: before,
|
Before: before,
|
||||||
|
@ -1079,7 +1080,7 @@ func main() {
|
||||||
if err := r.Settings.del(directory); err != nil {
|
if err := r.Settings.del(directory); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
fmt.Fprintln(output, prefix(green.bold("Realize folder successfully removed")))
|
log.Println(prefix(green.bold("Realize folder successfully removed")))
|
||||||
return nil
|
return nil
|
||||||
},
|
},
|
||||||
Before: before,
|
Before: before,
|
||||||
|
@ -1087,7 +1088,7 @@ func main() {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
if err := app.Run(os.Args); err != nil {
|
if err := app.Run(os.Args); err != nil {
|
||||||
fmt.Fprintln(output, prefix(red.bold(err)))
|
log.Println(prefix(red.bold(err)))
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1115,7 +1116,7 @@ func new() realize {
|
||||||
// Prefix a given string
|
// Prefix a given string
|
||||||
func prefix(s string) string {
|
func prefix(s string) string {
|
||||||
if s != "" {
|
if s != "" {
|
||||||
return fmt.Sprint(yellow.bold("["), "REALIZE", yellow.bold("]"), s)
|
return fmt.Sprint(yellow.bold("["), "REALIZE", yellow.bold("]"), " : ", s)
|
||||||
}
|
}
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
@ -1143,7 +1144,16 @@ func before(*cli.Context) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Wdir return current working directory
|
||||||
|
func wdir() string {
|
||||||
|
dir, err := os.Getwd()
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(prefix(err.Error()))
|
||||||
|
}
|
||||||
|
return dir
|
||||||
|
}
|
||||||
|
|
||||||
// Rewrite the layout of the log timestamp
|
// Rewrite the layout of the log timestamp
|
||||||
func (w logWriter) Write(bytes []byte) (int, error) {
|
func (w logWriter) Write(bytes []byte) (int, error) {
|
||||||
return fmt.Fprint(output, yellow.regular("["), time.Now().Format("15:04:05"), yellow.regular("]")+string(bytes))
|
return fmt.Fprint(output, yellow.regular("["), time.Now().Format("15:04:05"), yellow.regular("]"), string(bytes))
|
||||||
}
|
}
|
||||||
|
|
16
settings.go
16
settings.go
|
@ -7,7 +7,6 @@ import (
|
||||||
"math/rand"
|
"math/rand"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strings"
|
|
||||||
"syscall"
|
"syscall"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
@ -102,11 +101,6 @@ func (s *Settings) del(d string) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path cleaner
|
|
||||||
func (s Settings) path(path string) string {
|
|
||||||
return strings.Replace(filepath.Clean(path), "\\", "/", -1)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Validate checks a fatal error
|
// Validate checks a fatal error
|
||||||
func (s Settings) validate(err error) error {
|
func (s Settings) validate(err error) error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -171,16 +165,6 @@ func (s Settings) write(name string, data []byte) error {
|
||||||
return s.validate(err)
|
return s.validate(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Name return the project name or the path of the working dir
|
|
||||||
func (s Settings) name(name string, path string) string {
|
|
||||||
if name == "" && path == "" {
|
|
||||||
return s.wdir()
|
|
||||||
} else if path != "/" {
|
|
||||||
return filepath.Base(path)
|
|
||||||
}
|
|
||||||
return name
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create a new file and return its pointer
|
// Create a new file and return its pointer
|
||||||
func (s Settings) create(path string, name string) *os.File {
|
func (s Settings) create(path string, name string) *os.File {
|
||||||
var file string
|
var file string
|
||||||
|
|
Loading…
Reference in New Issue