Skip to content

Commit

Permalink
Uses channel to sequentialise output. #6
Browse files Browse the repository at this point in the history
  • Loading branch information
Mariano Gappa committed May 7, 2017
1 parent 0801c02 commit 23f2b97
Showing 1 changed file with 12 additions and 3 deletions.
15 changes: 12 additions & 3 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,14 +58,17 @@ func main() {
targetDatabases = append(targetDatabases, k)
}

out := make(chan string)
go println(out)

var wg sync.WaitGroup
wg.Add(len(targetDatabases))

returnCode := 0
for _, k := range targetDatabases {
go func(db database, k string) {
defer wg.Done()
if r := runSQL(db, sql, k, len(targetDatabases) > 1); !r {
if r := runSQL(db, sql, k, len(targetDatabases) > 1, out); !r {
returnCode = 1
}
}(databases[k], k)
Expand All @@ -75,7 +78,7 @@ func main() {
os.Exit(returnCode)
}

func runSQL(db database, sql string, key string, prependKey bool) bool {
func runSQL(db database, sql string, key string, prependKey bool, out chan string) bool {
userOption := ""
if db.User != "" {
userOption = fmt.Sprintf("-u %v ", db.User)
Expand Down Expand Up @@ -127,7 +130,7 @@ func runSQL(db database, sql string, key string, prependKey bool) bool {

scanner := bufio.NewScanner(stdout)
for scanner.Scan() {
fmt.Println(prepend + scanner.Text())
out <- prepend + scanner.Text()
}

stderrLines := []string{}
Expand All @@ -150,6 +153,12 @@ func runSQL(db database, sql string, key string, prependKey bool) bool {
return result
}

func println(ss chan string) {
for s := range ss {
fmt.Println(s)
}
}

func readInput(r io.Reader) string {
ls := []string{}
var err error
Expand Down

0 comments on commit 23f2b97

Please sign in to comment.