master > master: code go - cleanup von cli + option, um checks ein+auszuschalten
This commit is contained in:
parent
8cd99c1632
commit
fce25de013
@ -64,13 +64,19 @@ func FancyBinarySearch(input_L []int, input_x int) (int, error) {
|
||||
do_once := true
|
||||
for do_once {
|
||||
do_once = false
|
||||
|
||||
// Start Message
|
||||
setup.DisplayStartOfAlgorithm(name, inputs)
|
||||
|
||||
// Metriken initialisieren
|
||||
metrics.RestartMetrics()
|
||||
|
||||
// Prechecks:
|
||||
err = preChecks(input_L, input_x)
|
||||
if err != nil {
|
||||
break
|
||||
if setup.AppConfigPerformChecks() {
|
||||
err = preChecks(input_L, input_x)
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
// Ausführung des Algorithmus:
|
||||
@ -79,14 +85,20 @@ func FancyBinarySearch(input_L []int, input_x int) (int, error) {
|
||||
"index": output_index,
|
||||
}
|
||||
|
||||
// Letzte Messages:
|
||||
setup.DisplayMetrics()
|
||||
// Metriken anzeigen
|
||||
if setup.AppConfigShowMetrics() {
|
||||
setup.DisplayMetrics()
|
||||
}
|
||||
|
||||
// End Message
|
||||
setup.DisplayEndOfAlgorithm(outputs)
|
||||
|
||||
// Postchecks:
|
||||
err = postChecks(input_L, input_x, output_index)
|
||||
if err != nil {
|
||||
break
|
||||
if setup.AppConfigPerformChecks() {
|
||||
err = postChecks(input_L, input_x, output_index)
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -66,13 +66,19 @@ func FancyInterpolationSearch(input_L []int, input_x int, input_u int, input_v i
|
||||
do_once := true
|
||||
for do_once {
|
||||
do_once = false
|
||||
|
||||
// Start Message
|
||||
setup.DisplayStartOfAlgorithm(name, inputs)
|
||||
|
||||
// Metriken initialisieren
|
||||
metrics.RestartMetrics()
|
||||
|
||||
// Prechecks:
|
||||
err = preChecks(input_L, input_x, input_u, input_v)
|
||||
if err != nil {
|
||||
break
|
||||
if setup.AppConfigPerformChecks() {
|
||||
err = preChecks(input_L, input_x, input_u, input_v)
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
// Ausführung des Algorithmus:
|
||||
@ -81,14 +87,20 @@ func FancyInterpolationSearch(input_L []int, input_x int, input_u int, input_v i
|
||||
"index": output_index,
|
||||
}
|
||||
|
||||
// Letzte Messages:
|
||||
setup.DisplayMetrics()
|
||||
// Metriken anzeigen
|
||||
if setup.AppConfigShowMetrics() {
|
||||
setup.DisplayMetrics()
|
||||
}
|
||||
|
||||
// End Message
|
||||
setup.DisplayEndOfAlgorithm(outputs)
|
||||
|
||||
// Postchecks:
|
||||
err = postChecks(input_L, input_x, output_index)
|
||||
if err != nil {
|
||||
break
|
||||
if setup.AppConfigPerformChecks() {
|
||||
err = postChecks(input_L, input_x, output_index)
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -61,13 +61,19 @@ func FancyFindIthSmallest(input_L []int, input_i int) (int, error) {
|
||||
do_once := true
|
||||
for do_once {
|
||||
do_once = false
|
||||
|
||||
// Start Message
|
||||
setup.DisplayStartOfAlgorithm(name, inputs)
|
||||
|
||||
// Metriken initialisieren
|
||||
metrics.RestartMetrics()
|
||||
|
||||
// Prechecks:
|
||||
err = preChecks(input_L, input_i)
|
||||
if err != nil {
|
||||
break
|
||||
if setup.AppConfigPerformChecks() {
|
||||
err = preChecks(input_L, input_i)
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
// Ausführung des Algorithmus:
|
||||
@ -76,14 +82,20 @@ func FancyFindIthSmallest(input_L []int, input_i int) (int, error) {
|
||||
"value": output_value,
|
||||
}
|
||||
|
||||
// Letzte Messages:
|
||||
setup.DisplayMetrics()
|
||||
// Metriken anzeigen
|
||||
if setup.AppConfigShowMetrics() {
|
||||
setup.DisplayMetrics()
|
||||
}
|
||||
|
||||
// End Message
|
||||
setup.DisplayEndOfAlgorithm(outputs)
|
||||
|
||||
// Postchecks:
|
||||
err = postChecks(input_L, input_i, output_value)
|
||||
if err != nil {
|
||||
break
|
||||
if setup.AppConfigPerformChecks() {
|
||||
err = postChecks(input_L, input_i, output_value)
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -109,13 +121,19 @@ func FancyFindIthSmallestDC(input_L []int, input_i int) (int, error) {
|
||||
do_once := true
|
||||
for do_once {
|
||||
do_once = false
|
||||
|
||||
// Start Message
|
||||
setup.DisplayStartOfAlgorithm(name, inputs)
|
||||
|
||||
// Metriken initialisieren
|
||||
metrics.RestartMetrics()
|
||||
|
||||
// Prechecks:
|
||||
err = preChecks(input_L, input_i)
|
||||
if err != nil {
|
||||
break
|
||||
if setup.AppConfigPerformChecks() {
|
||||
err = preChecks(input_L, input_i)
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
// Ausführung des Algorithmus:
|
||||
@ -124,14 +142,20 @@ func FancyFindIthSmallestDC(input_L []int, input_i int) (int, error) {
|
||||
"value": output_value,
|
||||
}
|
||||
|
||||
// Letzte Messages:
|
||||
setup.DisplayMetrics()
|
||||
// Metriken anzeigen
|
||||
if setup.AppConfigShowMetrics() {
|
||||
setup.DisplayMetrics()
|
||||
}
|
||||
|
||||
// End Message
|
||||
setup.DisplayEndOfAlgorithm(outputs)
|
||||
|
||||
// Postchecks:
|
||||
err = postChecks(input_L, input_i, output_value)
|
||||
if err != nil {
|
||||
break
|
||||
if setup.AppConfigPerformChecks() {
|
||||
err = postChecks(input_L, input_i, output_value)
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -65,13 +65,19 @@ func FancyJumpSearchLinear(input_L []int, input_x int, input_m int) (int, error)
|
||||
do_once := true
|
||||
for do_once {
|
||||
do_once = false
|
||||
|
||||
// Start Message
|
||||
setup.DisplayStartOfAlgorithm(name, inputs)
|
||||
|
||||
// Metriken initialisieren
|
||||
metrics.RestartMetrics()
|
||||
|
||||
// Prechecks:
|
||||
err = preChecks(input_L, input_x, input_m)
|
||||
if err != nil {
|
||||
break
|
||||
if setup.AppConfigPerformChecks() {
|
||||
err = preChecks(input_L, input_x, input_m)
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
// Ausführung des Algorithmus:
|
||||
@ -80,14 +86,20 @@ func FancyJumpSearchLinear(input_L []int, input_x int, input_m int) (int, error)
|
||||
"index": output_index,
|
||||
}
|
||||
|
||||
// Letzte Messages:
|
||||
setup.DisplayMetrics()
|
||||
// Metriken anzeigen
|
||||
if setup.AppConfigShowMetrics() {
|
||||
setup.DisplayMetrics()
|
||||
}
|
||||
|
||||
// End Message
|
||||
setup.DisplayEndOfAlgorithm(outputs)
|
||||
|
||||
// Postchecks:
|
||||
err = postChecks(input_L, input_x, output_index)
|
||||
if err != nil {
|
||||
break
|
||||
if setup.AppConfigPerformChecks() {
|
||||
err = postChecks(input_L, input_x, output_index)
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -113,13 +125,19 @@ func FancyJumpSearchExponentiell(input_L []int, input_x int) (int, error) {
|
||||
do_once := true
|
||||
for do_once {
|
||||
do_once = false
|
||||
|
||||
// Start Message
|
||||
setup.DisplayStartOfAlgorithm(name, inputs)
|
||||
|
||||
// Metriken initialisieren
|
||||
metrics.RestartMetrics()
|
||||
|
||||
// Prechecks:
|
||||
err = preChecks(input_L, input_x)
|
||||
if err != nil {
|
||||
break
|
||||
if setup.AppConfigPerformChecks() {
|
||||
err = preChecks(input_L, input_x)
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
// Ausführung des Algorithmus:
|
||||
@ -128,14 +146,20 @@ func FancyJumpSearchExponentiell(input_L []int, input_x int) (int, error) {
|
||||
"index": output_index,
|
||||
}
|
||||
|
||||
// Letzte Messages:
|
||||
setup.DisplayMetrics()
|
||||
// Metriken anzeigen
|
||||
if setup.AppConfigShowMetrics() {
|
||||
setup.DisplayMetrics()
|
||||
}
|
||||
|
||||
// End Message
|
||||
setup.DisplayEndOfAlgorithm(outputs)
|
||||
|
||||
// Postchecks:
|
||||
err = postChecks(input_L, input_x, output_index)
|
||||
if err != nil {
|
||||
break
|
||||
if setup.AppConfigPerformChecks() {
|
||||
err = postChecks(input_L, input_x, output_index)
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -59,13 +59,19 @@ func FancyFindPoison(input_L []int) (int, error) {
|
||||
do_once := true
|
||||
for do_once {
|
||||
do_once = false
|
||||
|
||||
// Start Message
|
||||
setup.DisplayStartOfAlgorithm(name, inputs)
|
||||
|
||||
// Metriken initialisieren
|
||||
metrics.RestartMetrics()
|
||||
|
||||
// Prechecks:
|
||||
err = preChecks(input_L)
|
||||
if err != nil {
|
||||
break
|
||||
if setup.AppConfigPerformChecks() {
|
||||
err = preChecks(input_L)
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
// Ausführung des Algorithmus:
|
||||
@ -74,14 +80,20 @@ func FancyFindPoison(input_L []int) (int, error) {
|
||||
"index": output_index,
|
||||
}
|
||||
|
||||
// Letzte Messages:
|
||||
setup.DisplayMetrics()
|
||||
// Metriken anzeigen
|
||||
if setup.AppConfigShowMetrics() {
|
||||
setup.DisplayMetrics()
|
||||
}
|
||||
|
||||
// End Message
|
||||
setup.DisplayEndOfAlgorithm(outputs)
|
||||
|
||||
// Postchecks:
|
||||
err = postChecks(input_L, output_index)
|
||||
if err != nil {
|
||||
break
|
||||
if setup.AppConfigPerformChecks() {
|
||||
err = postChecks(input_L, output_index)
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -106,13 +118,19 @@ func FancyFindPoisonFast(input_L []int) (int, error) {
|
||||
do_once := true
|
||||
for do_once {
|
||||
do_once = false
|
||||
|
||||
// Start Message
|
||||
setup.DisplayStartOfAlgorithm(name, inputs)
|
||||
|
||||
// Metriken initialisieren
|
||||
metrics.RestartMetrics()
|
||||
|
||||
// Prechecks:
|
||||
err = preChecks(input_L)
|
||||
if err != nil {
|
||||
break
|
||||
if setup.AppConfigPerformChecks() {
|
||||
err = preChecks(input_L)
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
// Ausführung des Algorithmus:
|
||||
@ -121,14 +139,20 @@ func FancyFindPoisonFast(input_L []int) (int, error) {
|
||||
"index": output_index,
|
||||
}
|
||||
|
||||
// Letzte Messages:
|
||||
setup.DisplayMetrics()
|
||||
// Metriken anzeigen
|
||||
if setup.AppConfigShowMetrics() {
|
||||
setup.DisplayMetrics()
|
||||
}
|
||||
|
||||
// End Message
|
||||
setup.DisplayEndOfAlgorithm(outputs)
|
||||
|
||||
// Postchecks:
|
||||
err = postChecks(input_L, output_index)
|
||||
if err != nil {
|
||||
break
|
||||
if setup.AppConfigPerformChecks() {
|
||||
err = postChecks(input_L, output_index)
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -62,13 +62,19 @@ func FancySequentialSearch(input_L []int, input_x int) (int, error) {
|
||||
do_once := true
|
||||
for do_once {
|
||||
do_once = false
|
||||
|
||||
// Start Message
|
||||
setup.DisplayStartOfAlgorithm(name, inputs)
|
||||
|
||||
// Metriken initialisieren
|
||||
metrics.RestartMetrics()
|
||||
|
||||
// Prechecks:
|
||||
err = preChecks(input_L, input_x)
|
||||
if err != nil {
|
||||
break
|
||||
if setup.AppConfigPerformChecks() {
|
||||
err = preChecks(input_L, input_x)
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
// Ausführung des Algorithmus:
|
||||
@ -77,14 +83,20 @@ func FancySequentialSearch(input_L []int, input_x int) (int, error) {
|
||||
"index": output_index,
|
||||
}
|
||||
|
||||
// Letzte Messages:
|
||||
setup.DisplayMetrics()
|
||||
// Metriken anzeigen
|
||||
if setup.AppConfigShowMetrics() {
|
||||
setup.DisplayMetrics()
|
||||
}
|
||||
|
||||
// End Message
|
||||
setup.DisplayEndOfAlgorithm(outputs)
|
||||
|
||||
// Postchecks:
|
||||
err = postChecks(input_L, input_x, output_index)
|
||||
if err != nil {
|
||||
break
|
||||
if setup.AppConfigPerformChecks() {
|
||||
err = postChecks(input_L, input_x, output_index)
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -53,13 +53,19 @@ func FancyMaxSubSum(input_L []int) (int, int, int, error) {
|
||||
do_once := true
|
||||
for do_once {
|
||||
do_once = false
|
||||
|
||||
// Start Message
|
||||
setup.DisplayStartOfAlgorithm(name, inputs)
|
||||
|
||||
// Metriken initialisieren
|
||||
metrics.RestartMetrics()
|
||||
|
||||
// Prechecks:
|
||||
err = preChecks(input_L)
|
||||
if err != nil {
|
||||
break
|
||||
if setup.AppConfigPerformChecks() {
|
||||
err = preChecks(input_L)
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
// Ausführung des Algorithmus:
|
||||
@ -70,14 +76,20 @@ func FancyMaxSubSum(input_L []int) (int, int, int, error) {
|
||||
"index_to": output_indexTo,
|
||||
}
|
||||
|
||||
// Letzte Messages:
|
||||
setup.DisplayMetrics()
|
||||
// Metriken anzeigen
|
||||
if setup.AppConfigShowMetrics() {
|
||||
setup.DisplayMetrics()
|
||||
}
|
||||
|
||||
// End Message
|
||||
setup.DisplayEndOfAlgorithm(outputs)
|
||||
|
||||
// Postchecks:
|
||||
err = postChecks(input_L, output_maxSum, output_indexFrom, output_indexTo)
|
||||
if err != nil {
|
||||
break
|
||||
if setup.AppConfigPerformChecks() {
|
||||
err = postChecks(input_L, output_maxSum, output_indexFrom, output_indexTo)
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -104,13 +116,19 @@ func FancyMaxSubSumDC(input_L []int) (int, int, int, error) {
|
||||
do_once := true
|
||||
for do_once {
|
||||
do_once = false
|
||||
|
||||
// Start Message
|
||||
setup.DisplayStartOfAlgorithm(name, inputs)
|
||||
|
||||
// Metriken initialisieren
|
||||
metrics.RestartMetrics()
|
||||
|
||||
// Prechecks:
|
||||
err = preChecks(input_L)
|
||||
if err != nil {
|
||||
break
|
||||
if setup.AppConfigPerformChecks() {
|
||||
err = preChecks(input_L)
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
// Ausführung des Algorithmus:
|
||||
@ -121,14 +139,20 @@ func FancyMaxSubSumDC(input_L []int) (int, int, int, error) {
|
||||
"index_to": output_indexTo,
|
||||
}
|
||||
|
||||
// Letzte Messages:
|
||||
setup.DisplayMetrics()
|
||||
// Metriken anzeigen
|
||||
if setup.AppConfigShowMetrics() {
|
||||
setup.DisplayMetrics()
|
||||
}
|
||||
|
||||
// End Message
|
||||
setup.DisplayEndOfAlgorithm(outputs)
|
||||
|
||||
// Postchecks:
|
||||
err = postChecks(input_L, output_maxSum, output_indexFrom, output_indexTo)
|
||||
if err != nil {
|
||||
break
|
||||
if setup.AppConfigPerformChecks() {
|
||||
err = postChecks(input_L, output_maxSum, output_indexFrom, output_indexTo)
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -94,3 +94,17 @@ func FormatTextBlockAsList(text string, options ...bool) []string {
|
||||
func StripAnsi(text string) string {
|
||||
return re.Sub(`\x1b[^m]*m`, ``, text)
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------- *
|
||||
* METHODS string -> bool
|
||||
* ---------------------------------------------------------------- */
|
||||
|
||||
func IsTrue(text string) bool {
|
||||
text = strings.TrimSpace(text)
|
||||
return re.Matches(`(?i)(^(true|t|yes|y|1|\+|\+1)$)`, text)
|
||||
}
|
||||
|
||||
func IsFalse(text string) bool {
|
||||
text = strings.TrimSpace(text)
|
||||
return re.Matches(`(?i)(^(false|f|no|n|0|-|-1)$)`, text)
|
||||
}
|
||||
|
@ -7,6 +7,7 @@ package endpoints
|
||||
import (
|
||||
"ads/internal/core/logging"
|
||||
"ads/internal/setup"
|
||||
"ads/internal/setup/cli"
|
||||
)
|
||||
|
||||
/* ---------------------------------------------------------------- *
|
||||
@ -24,11 +25,12 @@ func Version() {
|
||||
|
||||
func Help() {
|
||||
logging.SetForce(true)
|
||||
cli.ParseCli([]string{}) // <- generiere leere Instanz für Parser, um voll Hilfsanleitug zu zeigen
|
||||
logging.LogPlain(
|
||||
"",
|
||||
setup.Logo(),
|
||||
// cli.Parser.Usage(nil),
|
||||
setup.Help(),
|
||||
// setup.Help(),
|
||||
cli.Parser.Usage(nil),
|
||||
"",
|
||||
)
|
||||
}
|
||||
|
@ -26,6 +26,13 @@ var optionsQuiet = argparse.Options{
|
||||
Default: false,
|
||||
}
|
||||
|
||||
var optionsChecks = argparse.Options{
|
||||
Help: "Ob vor und nach Ausführung von Algorithmen Checks auf Inputs/Outputs ausgeführt werden sollen.",
|
||||
Required: false,
|
||||
// NOTE: no `Boolean` option available!
|
||||
Default: "false",
|
||||
}
|
||||
|
||||
var optionsDebug = argparse.Options{
|
||||
Help: "Blendet die Debugging-Befehle ein.",
|
||||
Required: false,
|
||||
@ -33,7 +40,7 @@ var optionsDebug = argparse.Options{
|
||||
}
|
||||
|
||||
var optionsColour = argparse.Options{
|
||||
Help: "Ob Logging färblich angezeigt wird (default=true).",
|
||||
Help: "Ob Logging färblich angezeigt wird.",
|
||||
Required: false,
|
||||
// NOTE: no `Boolean` option available!
|
||||
Default: "true",
|
||||
@ -58,6 +65,7 @@ func ParseCli(args []string) (*types.CliArguments, error) {
|
||||
Run: Parser.NewCommand("run", "Ruft Endpunkt auf, der die Algorithmen laufen lässt."),
|
||||
Quiet: Parser.Flag("q", "quiet", &optionsQuiet),
|
||||
Debug: Parser.Flag("", "debug", &optionsDebug),
|
||||
Checks: Parser.String("", "checks", &optionsChecks),
|
||||
Colour: Parser.String("", "colour", &optionsColour),
|
||||
ConfigFile: Parser.String("", "config", &optionsConfigFile),
|
||||
}
|
||||
|
40
code/golang/internal/setup/setup_appconfig.go
Normal file
40
code/golang/internal/setup/setup_appconfig.go
Normal file
@ -0,0 +1,40 @@
|
||||
package setup
|
||||
|
||||
/* ---------------------------------------------------------------- *
|
||||
* IMPORTS
|
||||
* ---------------------------------------------------------------- */
|
||||
|
||||
import (
|
||||
"ads/internal/types"
|
||||
|
||||
"gopkg.in/yaml.v3"
|
||||
)
|
||||
|
||||
/* ---------------------------------------------------------------- *
|
||||
* GLOBAL CONSTANTS
|
||||
* ---------------------------------------------------------------- */
|
||||
|
||||
var AppConfig = types.AppConfig{}
|
||||
|
||||
/* ---------------------------------------------------------------- *
|
||||
* METHODS
|
||||
* ---------------------------------------------------------------- */
|
||||
|
||||
// Extrahiert Inhalte einer YAML Config und parset dies als Struktur
|
||||
func AppConfigInitialise() error {
|
||||
contents := AppConfigYaml()
|
||||
err := yaml.Unmarshal([]byte(contents), &AppConfig)
|
||||
return err
|
||||
}
|
||||
|
||||
func AppConfigFancyMode() bool {
|
||||
return AppConfig.Options.Display
|
||||
}
|
||||
|
||||
func AppConfigShowMetrics() bool {
|
||||
return AppConfig.Options.Metrics
|
||||
}
|
||||
|
||||
func AppConfigPerformChecks() bool {
|
||||
return AppConfig.Options.Checks
|
||||
}
|
@ -54,3 +54,7 @@ func Logo() string {
|
||||
func Version() string {
|
||||
return strings.Trim(ReadAsset("version"), "\n")
|
||||
}
|
||||
|
||||
func AppConfigYaml() string {
|
||||
return strings.Trim(ReadAsset("appconfig"), "\n")
|
||||
}
|
||||
|
27
code/golang/internal/types/types_appconfig.go
Normal file
27
code/golang/internal/types/types_appconfig.go
Normal file
@ -0,0 +1,27 @@
|
||||
package types
|
||||
|
||||
/* ---------------------------------------------------------------- *
|
||||
* IMPORTS
|
||||
* ---------------------------------------------------------------- */
|
||||
|
||||
//
|
||||
|
||||
/* ---------------------------------------------------------------- *
|
||||
* YAML SCHEMES
|
||||
* ---------------------------------------------------------------- */
|
||||
|
||||
type AppConfig struct {
|
||||
Info *AppConfigInfo `yaml:"info"`
|
||||
Options *AppConfigOptions `yaml:"options"`
|
||||
}
|
||||
|
||||
type AppConfigInfo struct {
|
||||
Title *string `yaml:"title"`
|
||||
Description *string `yaml:"description"`
|
||||
}
|
||||
|
||||
type AppConfigOptions struct {
|
||||
Display bool `yaml:"display"`
|
||||
Checks bool `yaml:"checks"`
|
||||
Metrics bool `yaml:"metrics"`
|
||||
}
|
@ -5,11 +5,9 @@ package types
|
||||
* ---------------------------------------------------------------- */
|
||||
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"github.com/akamensky/argparse"
|
||||
|
||||
"ads/pkg/re"
|
||||
"ads/internal/core/utils"
|
||||
)
|
||||
|
||||
/* ---------------------------------------------------------------- *
|
||||
@ -22,6 +20,7 @@ type CliArguments struct {
|
||||
Run *argparse.Command
|
||||
Quiet *bool
|
||||
Debug *bool
|
||||
Checks *string
|
||||
Colour *string
|
||||
ConfigFile *string
|
||||
}
|
||||
@ -30,16 +29,22 @@ type CliArguments struct {
|
||||
* METHODS convert string option to boolean
|
||||
* ---------------------------------------------------------------- */
|
||||
|
||||
func IsTrue(text string) bool {
|
||||
text = strings.TrimSpace(text)
|
||||
return re.Matches(`(?i)(^(true|t|yes|y|1|\+|\+1)$)`, text)
|
||||
func (arguments CliArguments) QuietModeOn() bool {
|
||||
return *arguments.Quiet
|
||||
}
|
||||
|
||||
func IsFalse(text string) bool {
|
||||
text = strings.TrimSpace(text)
|
||||
return re.Matches(`(?i)(^(false|f|no|n|0|-|-1)$)`, text)
|
||||
func (arguments CliArguments) DebugModeOn() bool {
|
||||
return *arguments.Debug
|
||||
}
|
||||
|
||||
func (arguments *CliArguments) ShowColour() bool {
|
||||
return !IsFalse(*arguments.Colour)
|
||||
func (arguments CliArguments) ShowChecks() bool {
|
||||
return !utils.IsFalse(*arguments.Checks)
|
||||
}
|
||||
|
||||
func (arguments CliArguments) ShowColour() bool {
|
||||
return !utils.IsFalse(*arguments.Colour)
|
||||
}
|
||||
|
||||
func (arguments CliArguments) GetConfigFile() string {
|
||||
return *arguments.ConfigFile
|
||||
}
|
||||
|
@ -24,9 +24,10 @@ var (
|
||||
//go:embed assets/*
|
||||
res embed.FS
|
||||
assets = map[string]string{
|
||||
"version": "assets/VERSION",
|
||||
"logo": "assets/LOGO",
|
||||
"help": "assets/HELP",
|
||||
"appconfig": "assets/config.yml",
|
||||
"version": "assets/VERSION",
|
||||
"logo": "assets/LOGO",
|
||||
"help": "assets/HELP",
|
||||
}
|
||||
)
|
||||
|
||||
@ -38,25 +39,34 @@ func main() {
|
||||
var err error
|
||||
var arguments *types.CliArguments
|
||||
|
||||
// set assets
|
||||
// assets festlegen
|
||||
setup.Res = res
|
||||
setup.Assets = assets
|
||||
|
||||
// parse cli arguments
|
||||
// cli arguments parsen
|
||||
arguments, err = cli.ParseCli(os.Args)
|
||||
|
||||
// initialise logging options
|
||||
// initialisiere basic optionen wie Logging
|
||||
if err == nil {
|
||||
logging.SetQuietMode(*arguments.Quiet)
|
||||
logging.SetDebugMode(*arguments.Debug)
|
||||
logging.SetQuietMode(arguments.QuietModeOn())
|
||||
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.Version.Happened() {
|
||||
endpoints.Version()
|
||||
} else if arguments.Run.Happened() {
|
||||
err = endpoints.Run(*arguments.ConfigFile)
|
||||
err = endpoints.Run(arguments.GetConfigFile())
|
||||
} else { // } else if arguments.Help.Happened() {
|
||||
endpoints.Help()
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user