master > master: code - umgang mit cli args vereinheitlicht
This commit is contained in:
@@ -68,7 +68,10 @@ var optionsConfigFile = argparse.Options{
|
||||
// Parst cli flags.
|
||||
func ParseCli(args []string) (*types.CliArguments, error) {
|
||||
var err error
|
||||
Parser = argparse.NewParser("cli parser", "Liest Optionen + Flags von Kommandozeile.")
|
||||
Parser = argparse.NewParser(
|
||||
"cli parser",
|
||||
"\033[93;2mEin Programm zur Ausführung verschiedener Algorithmen aus dem Kurs AlgoDat I.\033[0m",
|
||||
)
|
||||
arguments := types.CliArguments{
|
||||
ModeHelp: Parser.NewCommand("help", "Hilfsanleitung anzeigen"),
|
||||
ModeVersion: Parser.NewCommand("version", "Version anzeigen."),
|
||||
|
||||
@@ -38,7 +38,7 @@ func ReadAsset(key string) string {
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------- *
|
||||
* METHODS templates
|
||||
* METHODS assets
|
||||
* ---------------------------------------------------------------- */
|
||||
|
||||
func Help() string {
|
||||
|
||||
@@ -38,9 +38,11 @@ var (
|
||||
* ---------------------------------------------------------------- */
|
||||
|
||||
func main() {
|
||||
var err error
|
||||
var arguments *types.CliArguments
|
||||
var (
|
||||
err1 error
|
||||
err2 error
|
||||
err3 error
|
||||
cmdMissing bool
|
||||
showChecks bool
|
||||
)
|
||||
@@ -50,12 +52,12 @@ func main() {
|
||||
setup.Assets = assets
|
||||
|
||||
// cli arguments parsen
|
||||
arguments, err = cli.ParseCli(os.Args)
|
||||
cmdMissing = cli.ParseCliCommandMissing(err)
|
||||
arguments, err1 = cli.ParseCli(os.Args)
|
||||
cmdMissing = cli.ParseCliCommandMissing(err1)
|
||||
|
||||
// initialisiere basic optionen wie Logging
|
||||
// Programmeinstellungen initialisieren
|
||||
showChecks = false
|
||||
if err == nil {
|
||||
if err1 == nil {
|
||||
if !(arguments.ModeRun.Happened() && arguments.InteractiveMode()) {
|
||||
logging.SetQuietMode(arguments.QuietModeOn())
|
||||
logging.SetDebugMode(arguments.DebugModeOn())
|
||||
@@ -63,34 +65,39 @@ func main() {
|
||||
logging.SetAnsiMode(arguments.ShowColour())
|
||||
showChecks = arguments.ShowChecks()
|
||||
}
|
||||
|
||||
// app config (intern) intialisieren
|
||||
err = setup.AppConfigInitialise()
|
||||
err2 = setup.AppConfigInitialise()
|
||||
setup.SetAppConfigPerformChecks(showChecks)
|
||||
|
||||
if err == nil {
|
||||
if arguments.ModeVersion.Happened() {
|
||||
endpoints_print.Version()
|
||||
return
|
||||
} else if arguments.ModeRun.Happened() {
|
||||
if arguments.InteractiveMode() {
|
||||
endpoints_run.RunInteractive()
|
||||
} else {
|
||||
err = endpoints_run.RunNonInteractive(arguments.GetConfigFile())
|
||||
if err != nil {
|
||||
logging.Fatal(err)
|
||||
}
|
||||
}
|
||||
return
|
||||
} else if arguments.ModeHelp.Happened() {
|
||||
endpoints_print.Help()
|
||||
return
|
||||
} else {
|
||||
endpoints_run.RunInteractive()
|
||||
}
|
||||
} else if cmdMissing {
|
||||
// Fehler melden (fatal)
|
||||
if err1 != nil && !cmdMissing {
|
||||
logging.Fatal(err1)
|
||||
}
|
||||
if err2 != nil {
|
||||
logging.Fatal(err2)
|
||||
}
|
||||
// Wenn der Artefakt ohne Argument aufgerufen wird, keinen Fehler melden, sondern im it-Modus ausführen
|
||||
if cmdMissing {
|
||||
endpoints_run.RunInteractive()
|
||||
return
|
||||
}
|
||||
// Sonst Commands behandeln
|
||||
if arguments.ModeHelp.Happened() {
|
||||
endpoints_print.Help()
|
||||
return
|
||||
} else if arguments.ModeVersion.Happened() {
|
||||
endpoints_print.Version()
|
||||
return
|
||||
} else if arguments.ModeRun.Happened() {
|
||||
if arguments.InteractiveMode() {
|
||||
endpoints_run.RunInteractive()
|
||||
} else {
|
||||
err3 = endpoints_run.RunNonInteractive(arguments.GetConfigFile())
|
||||
if err3 != nil {
|
||||
logging.Fatal(err3)
|
||||
}
|
||||
}
|
||||
return
|
||||
} else {
|
||||
logging.Fatal(err)
|
||||
endpoints_run.RunInteractive()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user