예제 #1
0
파일: main.go 프로젝트: kpawlik/exportms
func init() {
	var (
		err error
	)
	runtime.GOMAXPROCS(runtime.NumCPU())
	flag.StringVar(&workDir, "o", "", "")
	flag.IntVar(&noOfWorkers, "n", 5, "")
	flag.BoolVar(&sendOnly, "s", false, "")
	flag.BoolVar(&testMode, "tm", false, "")
	flag.StringVar(&exportTypes, "e", "", "")
	flag.Parse()
	workDir, err = filepath.Abs(strings.ToLower(workDir))
	utils.LogErr(err, "Dest folder path")
	if len(workDir) == 0 {
		fmt.Println("Set out forlder path")
		os.Exit(0)
	}

	if runtime.GOOS == "windows" {
		tmpPrefix = `c:\tmp`
	} else {
		tmpPrefix = `/tmp/`
	}
	f, err := os.Create(`ms-expot.log`)
	if err != nil {
		panic(err)
	}
	wr := io.MultiWriter(f, os.Stdout)
	log.SetOutput(wr)
	settings = &config{workDir: workDir,
		noOfWorkers: noOfWorkers,
		tmpPrefix:   tmpPrefix,
		sendOnly:    sendOnly,
		exports:     exportTypes,
		testMode:    testMode}

	exports = map[string]exportFunc{
		"gratka": exportGratka,
		"otodom": exportGratka}

}
예제 #2
0
파일: main.go 프로젝트: kpawlik/exportms
func main() {
	var (
		err      error
		offersNo int
		types    []string
	)
	if len(settings.exports) == 0 {
		types = allExportsTypes
	} else {
		types = strings.Split(settings.exports, ",")
		for _, typ := range types {
			if _, ok := exports[typ]; !ok {
				log.Fatalf("Unsupported export name %s", typ)
			}
		}
	}
	setCredentials("db")
	startTime := time.Now()
	// validate paths, remove / create dirctory
	if err = validPaths(settings); err != nil {
		utils.LogErrf(err, "Settings paths")
	}

	if !settings.sendOnly {
		// dump to XML
		log.Printf("Start getting data from DB\n")
		offersNo, err = dumpAsXML(settings)
		utils.LogErr(err, "Dump XML")
		log.Printf("Got %d offers from DB (in %v)\n", offersNo, time.Now().Sub(startTime))
	}

	for _, name := range types {
		if err = exports[name](name, settings); err != nil {
			utils.LogErrf(err, "Error durring process %s", name)
		}
	}
	log.Printf("All done in %v\n", time.Now().Sub(startTime))
}
예제 #3
0
파일: db.go 프로젝트: kpawlik/exportms
func (d *DB) CloseRows(rows *sql.Rows) {
	utils.LogErr(rows.Close(), "Close rows")
}
예제 #4
0
파일: db.go 프로젝트: kpawlik/exportms
func (d *DB) Query(query string) (rows *sql.Rows, err error) {
	rows, err = d.Db.Query(query)
	utils.LogErr(err, "Query")
	return
}
예제 #5
0
파일: db.go 프로젝트: kpawlik/exportms
func (d *DB) Close() (err error) {
	err = d.Db.Close()
	utils.LogErr(err, "Close db")
	return
}