github.com/mundipagg/boleto-api@v0.0.0-20230620145841-3f9ec742599f/main.go (about)

     1  package main
     2  
     3  import (
     4  	"flag"
     5  	"fmt"
     6  	"io/ioutil"
     7  	"os"
     8  	"runtime"
     9  	"strconv"
    10  
    11  	"github.com/mundipagg/boleto-api/app"
    12  	"github.com/mundipagg/boleto-api/config"
    13  )
    14  
    15  var (
    16  	env          string
    17  	processID    = os.Getpid()
    18  	devMode      = flag.Bool("dev", false, "-dev To run in dev mode")
    19  	mockMode     = flag.Bool("mock", false, "-mock To run mock requests")
    20  	disableLog   = flag.Bool("nolog", false, "-nolog disable seq log")
    21  	airPlaneMode = flag.Bool("airplane-mode", false, "-airplane-mode run api in dev, mock and nolog mode")
    22  	mockOnly     = flag.Bool("mockonly", false, "-mockonly run just mock service")
    23  )
    24  
    25  func init() {
    26  	createPIDfile()
    27  }
    28  
    29  func createPIDfile() {
    30  	p := strconv.Itoa(processID)
    31  	ioutil.WriteFile("boletoapi.pid", []byte(p), 0644)
    32  }
    33  
    34  func main() {
    35  	flag.Parse()
    36  	runtime.GOMAXPROCS(runtime.NumCPU())
    37  	if *mockOnly {
    38  		w := make(chan int)
    39  		config.Install(true, true, true)
    40  		// robot.GoRobots()
    41  		<-w
    42  	} else {
    43  		params := app.NewParams()
    44  		if *airPlaneMode {
    45  			params.DevMode = true
    46  			params.DisableLog = false
    47  			params.MockMode = true
    48  			env = strconv.FormatBool(params.DevMode)
    49  		} else {
    50  			params.DevMode = *devMode
    51  			params.DisableLog = *disableLog
    52  			params.MockMode = *mockMode
    53  			env = strconv.FormatBool(params.DevMode)
    54  		}
    55  		logo(env)
    56  		app.Run(params)
    57  
    58  	}
    59  
    60  }
    61  
    62  func logo(env string) {
    63  	l := `
    64  $$$$$$$\            $$\            $$\                $$$$$$\            $$\ 
    65  $$  __$$\           $$ |           $$ |              $$  __$$\           \__|
    66  $$ |  $$ | $$$$$$\  $$ | $$$$$$\ $$$$$$\    $$$$$$\  $$ /  $$ | $$$$$$\  $$\ 
    67  $$$$$$$\ |$$  __$$\ $$ |$$  __$$\\_$$  _|  $$  __$$\ $$$$$$$$ |$$  __$$\ $$ |
    68  $$  __$$\ $$ /  $$ |$$ |$$$$$$$$ | $$ |    $$ /  $$ |$$  __$$ |$$ /  $$ |$$ |
    69  $$ |  $$ |$$ |  $$ |$$ |$$   ____| $$ |$$\ $$ |  $$ |$$ |  $$ |$$ |  $$ |$$ |
    70  $$$$$$$  |\$$$$$$  |$$ |\$$$$$$$\  \$$$$  |\$$$$$$  |$$ |  $$ |$$$$$$$  |$$ |
    71  \_______/  \______/ \__| \_______|  \____/  \______/ \__|  \__|$$  ____/ \__|
    72                                                                 $$ |          
    73                                                                 $$ |          
    74                                                                 \__|          
    75  	`
    76  	fmt.Println(l)
    77  	fmt.Println("Version: " + config.Get().Version)
    78  	fmt.Println("DevMode: " + env)
    79  	fmt.Println("RecoveryRobot Enabled: " + config.Get().RecoveryRobotExecutionEnabled)
    80  }