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