// Patial Tech.
// Author, Ankit Patial

package main

import (
	"flag"
	"fmt"
	"os"
)

var (
	showVersion bool
)

const usageTxt = `Please provide output directory and input schema.
Example:
  pgm -o ./db ./schema.sql

`

func main() {
	var outDir string
	flag.StringVar(&outDir, "o", "", "-o as output directory path")
	flag.BoolVar(&showVersion, "version", false, "show version information")
	flag.Parse()

	// Handle version flag
	if showVersion {
		fmt.Printf("pgm %s\n", GetVersionString())
		fmt.Println("PostgreSQL Query Mapper - Schema code generator")
		fmt.Println("https://code.patial.tech/go/pgm")
		return
	}
	if len(os.Args) < 4 {
		fmt.Print(usageTxt)
		return
	}

	if outDir == "" {
		fmt.Fprintln(os.Stderr, "Error: missing output directory path (-o flag required)")
		os.Exit(1)
		return
	}

	if err := generate(os.Args[3], outDir); err != nil {
		fmt.Fprintf(os.Stderr, "Error: %v\n", err)
		os.Exit(1)
	}
}
