diff --git a/outlet.go b/outlet.go index 7c4427e..235b27b 100644 --- a/outlet.go +++ b/outlet.go @@ -21,6 +21,7 @@ var _ = pretty.Println // lol var _ = bufio.NewScanner var _ = bytes.NewReader +var longest int var mutex = new(sync.Mutex) var colors = []ct.Color{ @@ -37,7 +38,7 @@ func (o *Outlet) Write(b []byte) (num int, err error) { defer mutex.Unlock() scanner := bufio.NewScanner(bytes.NewReader(b)) for scanner.Scan() { - formatter := fmt.Sprintf("%%-%ds | ", LongestOutletName()) + formatter := fmt.Sprintf("%%-%ds | ", longest) ct.ChangeColor(o.Color, true, ct.None, false) fmt.Printf(formatter, o.Name) if (o.IsError) { @@ -63,20 +64,13 @@ func createOutlet(name string, index int, isError bool) *Outlet { return outlets[name] } -func LongestOutletName() (longest int) { - // kr? - longest = 6 // forego is the shortest name - for name, _ := range outlets { - if len(name) > longest { - longest = len(name) - } - } - return +func SetLongestOutletName(l int) { + longest = l } func SystemOutput(str string) { ct.ChangeColor(ct.White, true, ct.None, false) - formatter := fmt.Sprintf("%%-%ds | ", LongestOutletName()) + formatter := fmt.Sprintf("%%-%ds | ", longest) fmt.Printf(formatter, "forego") ct.ResetColor() fmt.Println(str) diff --git a/procfile.go b/procfile.go index 90fb4a0..81f814e 100644 --- a/procfile.go +++ b/procfile.go @@ -42,6 +42,16 @@ func (pf *Procfile) HasProcess(name string) (exists bool) { return } +func (pf *Procfile) LongestProcessName() (longest int) { + longest = 6 // length of forego + for _, entry := range pf.Entries { + if len(entry.Name) > longest { + longest = len(entry.Name) + } + } + return +} + func parseProcfile(r io.Reader) (*Procfile, error) { pf := new(Procfile) scanner := bufio.NewScanner(r) diff --git a/start.go b/start.go index 46b4905..9421843 100644 --- a/start.go +++ b/start.go @@ -74,6 +74,8 @@ func runStart(cmd *Command, args []string) { env, err := ReadEnv(flagEnv) handleError(err) + SetLongestOutletName(pf.LongestProcessName()) + ps_env := os.Environ() for name, val := range env { ps_env = append(ps_env, fmt.Sprintf("%s=%s", name, val))