ads1_2021/code/golang/main.go

92 lines
2.1 KiB
Go
Raw Normal View History

package main
/* ---------------------------------------------------------------- *
* IMPORTS
* ---------------------------------------------------------------- */
import (
"embed"
"os"
"ads/internal/core/logging"
"ads/internal/endpoints"
"ads/internal/setup"
"ads/internal/setup/cli"
"ads/internal/types"
)
/* ---------------------------------------------------------------- *
* GLOBAL VARIABLES
* ---------------------------------------------------------------- */
var (
// !!! NOTE: do not remove the following "comment", as it is a preprocessing instruction !!!
//go:embed assets/*
res embed.FS
assets = map[string]string{
"appconfig": "assets/config.yml",
"version": "assets/VERSION",
"logo": "assets/LOGO",
"help": "assets/HELP",
}
)
/* ---------------------------------------------------------------- *
* METHOD main
* ---------------------------------------------------------------- */
func main() {
var err error
var arguments *types.CliArguments
// assets festlegen
setup.Res = res
setup.Assets = assets
// cli arguments parsen
arguments, err = cli.ParseCli(os.Args)
cmdMissing := cli.ParseCliCommandMissing(err)
// initialisiere basic optionen wie Logging
if err == nil {
quiet := arguments.QuietModeOn()
if arguments.InteractiveMode() {
quiet = false
}
logging.SetQuietMode(quiet)
logging.SetDebugMode(arguments.DebugModeOn())
logging.SetAnsiMode(arguments.ShowColour())
}
// app config (intern) intialisieren
if err == nil {
err = setup.AppConfigInitialise()
}
if err == nil {
setup.AppConfig.Options.Checks = arguments.ShowChecks()
}
if err == nil {
if arguments.ModeVersion.Happened() {
endpoints.Version()
} else if arguments.ModeRun.Happened() {
if arguments.InteractiveMode() {
err = endpoints.RunInteractive()
} else {
err = endpoints.RunNonInteractive(arguments.GetConfigFile())
}
} else if arguments.ModeHelp.Happened() {
endpoints.Help()
} else {
err = endpoints.RunInteractive()
}
} else if cmdMissing {
err = endpoints.RunInteractive()
}
if err != nil {
logging.LogFatal(err)
}
}