#100 name flag fixed

This commit is contained in:
asoseil 2017-10-22 18:44:44 +02:00
parent b3bb5c9e91
commit 227871d171
3 changed files with 30 additions and 32 deletions

10
cmd.go
View File

@ -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
} }

View File

@ -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))
} }

View File

@ -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