From 227871d17159b5ca5d3168147166220ea08cfd35 Mon Sep 17 00:00:00 2001 From: asoseil Date: Sun, 22 Oct 2017 18:44:44 +0200 Subject: [PATCH] #100 name flag fixed --- cmd.go | 10 +++++++--- realize.go | 36 +++++++++++++++++++++++------------- settings.go | 16 ---------------- 3 files changed, 30 insertions(+), 32 deletions(-) diff --git a/cmd.go b/cmd.go index 774263e..83250a3 100644 --- a/cmd.go +++ b/cmd.go @@ -62,8 +62,8 @@ func (r *realize) check() error { // Add a new project func (r *realize) add(p *cli.Context) error { project := Project{ - Name: r.Settings.name(p.String("name"), p.String("path")), - Path: r.Settings.path(p.String("path")), + Name: filepath.Base(filepath.Clean(p.String("path"))), + Path: filepath.Clean(p.String("path")), Cmds: Cmds{ Vet: Cmd{ Status: p.Bool("vet"), @@ -101,6 +101,7 @@ func (r *realize) add(p *cli.Context) error { // Run launches the toolchain for each project func (r *realize) run(p *cli.Context) error { + var match bool err := r.check() if err == nil { // loop projects @@ -214,10 +215,13 @@ func (r *realize) run(p *cli.Context) error { } else { r.Schema[k].base = filepath.Join(wd, elm.path) } + match = true go r.Schema[k].watch() } + if !match { + return errors.New("there is no project with the given name") + } wg.Wait() - return nil } return err } diff --git a/realize.go b/realize.go index 4bd957f..552f5c1 100644 --- a/realize.go +++ b/realize.go @@ -8,6 +8,7 @@ import ( "gopkg.in/urfave/cli.v2" "log" "os" + "path/filepath" "strconv" "time" ) @@ -52,7 +53,7 @@ func main() { 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", 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.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"}, @@ -68,7 +69,7 @@ func main() { if err := r.insert(p); err != nil { return err } - if !p.Bool("no-config") { + if !p.Bool("no-config") && p.String("name") == ""{ if err := r.Settings.record(r); err != nil { return err } @@ -86,7 +87,7 @@ func main() { Aliases: []string{"a"}, Description: "Add a project to an existing config file or create a new one", 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: "vet", Aliases: []string{"v"}, Value: false, Usage: "Enable go vet"}, &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 { 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 }, Before: before, @@ -116,7 +117,7 @@ func main() { interact.Run(&interact.Interact{ Before: func(context interact.Context) error { 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 }, Questions: []*interact.Question{ @@ -361,7 +362,7 @@ func main() { }, { Before: func(d interact.Context) error { - dir, _ := os.Getwd() + dir := wdir() d.SetDef(dir, green.regular("("+dir+")")) return nil }, @@ -374,7 +375,7 @@ func main() { if err != nil { 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 }, }, @@ -1045,7 +1046,7 @@ func main() { if err := r.Settings.record(r); err != nil { return err } - fmt.Fprintln(output, prefix(green.bold(" Your configuration was successful"))) + log.Println(prefix(green.bold("Your configuration was successful"))) return nil }, Before: before, @@ -1065,7 +1066,7 @@ func main() { if err := r.Settings.record(r); err != nil { 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 }, Before: before, @@ -1079,7 +1080,7 @@ func main() { if err := r.Settings.del(directory); err != nil { return err } - fmt.Fprintln(output, prefix(green.bold("Realize folder successfully removed"))) + log.Println(prefix(green.bold("Realize folder successfully removed"))) return nil }, Before: before, @@ -1087,7 +1088,7 @@ func main() { }, } if err := app.Run(os.Args); err != nil { - fmt.Fprintln(output, prefix(red.bold(err))) + log.Println(prefix(red.bold(err))) os.Exit(1) } } @@ -1115,7 +1116,7 @@ func new() realize { // Prefix a given string func prefix(s string) string { if s != "" { - return fmt.Sprint(yellow.bold("["), "REALIZE", yellow.bold("]"), s) + return fmt.Sprint(yellow.bold("["), "REALIZE", yellow.bold("]"), " : ", s) } return "" } @@ -1143,7 +1144,16 @@ func before(*cli.Context) error { 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 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)) } diff --git a/settings.go b/settings.go index 8fe1cbe..2301e22 100644 --- a/settings.go +++ b/settings.go @@ -7,7 +7,6 @@ import ( "math/rand" "os" "path/filepath" - "strings" "syscall" "time" ) @@ -102,11 +101,6 @@ func (s *Settings) del(d string) error { return err } -// Path cleaner -func (s Settings) path(path string) string { - return strings.Replace(filepath.Clean(path), "\\", "/", -1) -} - // Validate checks a fatal error func (s Settings) validate(err error) error { if err != nil { @@ -171,16 +165,6 @@ func (s Settings) write(name string, data []byte) error { 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 func (s Settings) create(path string, name string) *os.File { var file string