a new layout for the messages

This commit is contained in:
alessio 2016-08-21 12:03:31 +02:00
parent afbc750626
commit 0eca2b66b4
4 changed files with 56 additions and 33 deletions

View File

@ -17,12 +17,13 @@ const (
var wg sync.WaitGroup var wg sync.WaitGroup
var Green = color.New(color.FgGreen, color.Bold).SprintFunc() var Green = color.New(color.FgGreen, color.Bold).SprintFunc()
var Greenl = color.New(color.FgGreen).SprintFunc()
var Red = color.New(color.FgRed, color.Bold).SprintFunc() var Red = color.New(color.FgRed, color.Bold).SprintFunc()
var Redl = color.New(color.FgRed).SprintFunc() var RedS = color.New(color.FgRed).SprintFunc()
var BlueS = color.New(color.FgBlue).SprintFunc()
var Blue = color.New(color.FgBlue, color.Bold).SprintFunc() var Blue = color.New(color.FgBlue, color.Bold).SprintFunc()
var Bluel = color.New(color.FgBlue).SprintFunc() var Yellow = color.New(color.FgYellow, color.Bold).SprintFunc()
var Magenta = color.New(color.FgMagenta).SprintFunc() var MagentaS = color.New(color.FgMagenta).SprintFunc()
var Magenta = color.New(color.FgMagenta, color.Bold).SprintFunc()
var watcherIgnores = []string{"vendor", "bin"} var watcherIgnores = []string{"vendor", "bin"}
var watcherExts = []string{".go"} var watcherExts = []string{".go"}
@ -47,5 +48,5 @@ func Init() *App {
// Information print realize name and description // Information print realize name and description
func (app *App) Information() { func (app *App) Information() {
fmt.Println(Blue(app.Name) + " - " + Blue(app.Version)) fmt.Println(Blue(app.Name) + " - " + Blue(app.Version))
fmt.Println(Bluel(app.Description) + "\n") fmt.Println(BlueS(app.Description) + "\n")
} }

View File

@ -165,17 +165,17 @@ func (h *Config) List() error {
if err == nil { if err == nil {
for _, val := range h.Projects { for _, val := range h.Projects {
fmt.Println(Blue("|"), Blue(strings.ToUpper(val.Name))) fmt.Println(Blue("|"), Blue(strings.ToUpper(val.Name)))
fmt.Println(Magenta("|"), "\t", Green("Base Path"), ":", Magenta(val.Path)) fmt.Println(MagentaS("|"), "\t", Green("Base Path"), ":", MagentaS(val.Path))
fmt.Println(Magenta("|"), "\t", Green("Run"), ":", Magenta(val.Run)) fmt.Println(MagentaS("|"), "\t", Green("Run"), ":", MagentaS(val.Run))
fmt.Println(Magenta("|"), "\t", Green("Build"),":", Magenta(val.Build)) fmt.Println(MagentaS("|"), "\t", Green("Build"),":", MagentaS(val.Build))
fmt.Println(Magenta("|"), "\t", Green("Install"), ":", Magenta(val.Bin)) fmt.Println(MagentaS("|"), "\t", Green("Install"), ":", MagentaS(val.Bin))
fmt.Println(Magenta("|"), "\t", Green("Watcher"),":") fmt.Println(MagentaS("|"), "\t", Green("Watcher"),":")
fmt.Println(Magenta("|"), "\t\t", Green("After"), ":", Magenta(val.Watcher.After)) fmt.Println(MagentaS("|"), "\t\t", Green("After"), ":", MagentaS(val.Watcher.After))
fmt.Println(Magenta("|"), "\t\t", Green("Before"), ":", Magenta(val.Watcher.Before)) fmt.Println(MagentaS("|"), "\t\t", Green("Before"), ":", MagentaS(val.Watcher.Before))
fmt.Println(Magenta("|"), "\t\t", Green("Extensions"), ":", Magenta(val.Watcher.Exts)) fmt.Println(MagentaS("|"), "\t\t", Green("Extensions"), ":", MagentaS(val.Watcher.Exts))
fmt.Println(Magenta("|"), "\t\t", Green("Paths"), ":", Magenta(val.Watcher.Paths)) fmt.Println(MagentaS("|"), "\t\t", Green("Paths"), ":", MagentaS(val.Watcher.Paths))
fmt.Println(Magenta("|"), "\t\t", Green("Paths ignored"), ":", Magenta(val.Watcher.Ignore)) fmt.Println(MagentaS("|"), "\t\t", Green("Paths ignored"), ":", MagentaS(val.Watcher.Ignore))
fmt.Println(Magenta("|"), "\t\t", Green("Watch preview"), ":", Magenta(val.Watcher.Preview)) fmt.Println(MagentaS("|"), "\t\t", Green("Watch preview"), ":", MagentaS(val.Watcher.Preview))
} }
return nil return nil
} }

View File

@ -42,7 +42,7 @@ func (p *Project) GoRun(channel chan bool, runner chan bool, wr *sync.WaitGroup)
if err := build.Process.Kill(); err != nil { if err := build.Process.Kill(); err != nil {
log.Fatal("failed to stop: ", err) log.Fatal("failed to stop: ", err)
} }
log.Println(Redl(p.Name),":", Red("Stopped")) log.Println(pname(p.Name,2),":", RedS("Stopped"))
wr.Done() wr.Done()
}() }()
@ -62,7 +62,7 @@ func (p *Project) GoRun(channel chan bool, runner chan bool, wr *sync.WaitGroup)
for in.Scan() { for in.Scan() {
select { select {
default: default:
log.Println(Bluel(p.Name+" Out:"), Bluel(in.Text())) log.Println(pname(p.Name,3),":",BlueS(in.Text()))
} }
} }
close(stop) close(stop)

View File

@ -45,19 +45,19 @@ func (p *Project) Watching() {
var watcher *fsnotify.Watcher var watcher *fsnotify.Watcher
watcher, err := fsnotify.NewWatcher() watcher, err := fsnotify.NewWatcher()
if err != nil { if err != nil {
log.Println(Redl(p.Name),": \t", Red(err.Error())) log.Println(strings.ToUpper(pname(p.Name, 1)),": \t", Red(err.Error()))
} }
channel := make(chan bool, 1) channel := make(chan bool, 1)
base, err := os.Getwd() base, err := os.Getwd()
if err != nil { if err != nil {
log.Println(Redl(p.Name),": \t", Red(err.Error())) log.Println(pname(p.Name, 1),": \t", Red(err.Error()))
} }
walk := func(path string, info os.FileInfo, err error) error { walk := func(path string, info os.FileInfo, err error) error {
if !p.ignore(path) { if !p.ignore(path) {
if (info.IsDir() && len(filepath.Ext(path)) == 0 && !strings.Contains(path, "/.")) || (inArray(filepath.Ext(path), p.Watcher.Exts)) { if (info.IsDir() && len(filepath.Ext(path)) == 0 && !strings.Contains(path, "/.")) || (inArray(filepath.Ext(path), p.Watcher.Exts)) {
if p.Watcher.Preview { if p.Watcher.Preview {
fmt.Println(p.Name + ": \t" + path) fmt.Println(pname(p.Name, 1) + ": \t" + path)
} }
if err = watcher.Add(path); err != nil { if err = watcher.Add(path); err != nil {
return filepath.SkipDir return filepath.SkipDir
@ -90,11 +90,11 @@ func (p *Project) Watching() {
log.Println(Red(err.Error())) log.Println(Red(err.Error()))
} }
} else { } else {
fmt.Println(Redl(p.Name), ":\t", Red(base + " path doesn't exist")) fmt.Println(pname(p.Name, 1), ":\t", Red(base + " path doesn't exist"))
} }
} }
routines() routines()
fmt.Println(Red("Watching: '" + p.Name + "'\n")) fmt.Println(Red("Watching: " + pname(p.Name, 1) + "\n"))
p.reload = time.Now().Truncate(time.Second) p.reload = time.Now().Truncate(time.Second)
for { for {
select { select {
@ -106,7 +106,7 @@ func (p *Project) Watching() {
if _, err := os.Stat(event.Name); err == nil { if _, err := os.Stat(event.Name); err == nil {
i := strings.Index(event.Name, filepath.Ext(event.Name)) i := strings.Index(event.Name, filepath.Ext(event.Name))
if event.Name[:i] != "" { if event.Name[:i] != "" {
log.Println(Magenta(p.Name),":", Magenta("File changed"), "->", Blue(event.Name[:i])) log.Println(pname(p.Name, 4),":", Magenta(event.Name[:i]))
// stop and run again // stop and run again
close(channel) close(channel)
@ -126,22 +126,22 @@ func (p *Project) Watching() {
// Install call an implementation of the "go install" // Install call an implementation of the "go install"
func (p *Project) install(channel chan bool,wr *sync.WaitGroup) { func (p *Project) install(channel chan bool,wr *sync.WaitGroup) {
if p.Bin { if p.Bin {
log.Println(Greenl(p.Name), ":", Greenl("Installing..")) log.Println(pname(p.Name, 1), ":","Installing..")
start := time.Now() start := time.Now()
if err := p.GoInstall(); err != nil { if err := p.GoInstall(); err != nil {
log.Println(Redl(p.Name),":",Red(err.Error())) log.Println(pname(p.Name, 1),":",Red(err.Error()))
wr.Done() wr.Done()
} else { } else {
log.Println(Greenl(p.Name),":", Green("Installed")+ " after", Magenta(time.Since(start))) log.Println(pname(p.Name, 5),":", Green("Installed")+ " after", MagentaS(time.Since(start)))
if p.Run { if p.Run {
runner := make(chan bool, 1) runner := make(chan bool, 1)
log.Println(Greenl(p.Name), ":", Greenl("Running..")) log.Println(pname(p.Name, 1), ":","Running..")
start = time.Now() start = time.Now()
go p.GoRun(channel, runner, wr) go p.GoRun(channel, runner, wr)
for { for {
select { select {
case <-runner: case <-runner:
log.Println(Greenl(p.Name), ":", Green("Has been run") + " after", Magenta(time.Since(start).Nanoseconds())) log.Println(pname(p.Name, 5), ":", Green("Has been run") + " after", MagentaS(time.Since(start)))
return return
} }
} }
@ -154,12 +154,12 @@ func (p *Project) install(channel chan bool,wr *sync.WaitGroup) {
// Build call an implementation of the "go build" // Build call an implementation of the "go build"
func (p *Project) build() { func (p *Project) build() {
if p.Build { if p.Build {
log.Println(Greenl(p.Name), ":", Greenl("Building..")) log.Println(pname(p.Name, 1), ":", "Building..")
start := time.Now() start := time.Now()
if err := p.GoBuild(); err != nil { if err := p.GoBuild(); err != nil {
log.Println(Redl(p.Name), ":", Red(err.Error())) log.Println(pname(p.Name, 1), ":", Red(err.Error()))
} else { } else {
log.Println(Greenl(p.Name),":", Green("Builded")+ " after", Magenta(time.Since(start))) log.Println(pname(p.Name, 5),":", Green("Builded")+ " after", MagentaS(time.Since(start)))
} }
return return
} }
@ -201,3 +201,25 @@ func slash(str string) string {
} }
return str return str
} }
// defines the colors scheme for the project name
func pname(name string, color int) string{
switch color {
case 1:
name = Yellow("[")+strings.ToUpper(name)+Yellow("]")
break
case 2:
name = Yellow("[")+Red(strings.ToUpper(name))+Yellow("]")
break
case 3:
name = Yellow("[")+Blue(strings.ToUpper(name))+Yellow("]")
break
case 4:
name = Yellow("[")+Magenta(strings.ToUpper(name))+Yellow("]")
break
case 5:
name = Yellow("[")+Green(strings.ToUpper(name))+Yellow("]")
break
}
return name
}