github.com/l3x/learn-fp-go@v0.0.0-20171228022418-7639825d0b71/4-purely-functional/ch10-monads/01_car_steps/main.go (about) 1 package main 2 3 import ( 4 "workflow" 5 . "utils" 6 "bufio" 7 "os" 8 ) 9 10 func init() { 11 GetOptions() 12 InitLog("trace.log", os.Stdout, os.Stdout, os.Stderr) 13 Info.Println("AppEnv:", Config.AppEnv) 14 } 15 16 func main() { 17 carCntr := 0 18 if file, err := os.Open(Config.DataFilepath); err == nil { 19 defer file.Close() 20 Info.Println("----") 21 scanner := bufio.NewScanner(file) 22 for scanner.Scan() { 23 carCntr += 1 24 Info.Println("Processing car #", carCntr) 25 line := scanner.Text() 26 Info.Println("IN :", line) 27 err, carJson := workflow.ProcessCar(line) 28 if err == nil { 29 Info.Println("OUT:", carJson) 30 } 31 Info.Println("----") 32 } 33 if err = scanner.Err(); err != nil { 34 Error.Error(err) 35 } 36 } else { 37 Error.Error(err) 38 } 39 } 40