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) } }