Compare commits

..

No commits in common. "e8e36113be1dbf00990ae77ca0900e0af668586e" and "8cd99c163250fda39672f4f4e9336c78a6b8364d" have entirely different histories.

20 changed files with 111 additions and 379 deletions

4
.gitignore vendored
View File

@ -28,10 +28,6 @@
!/code/python/**/*.py !/code/python/**/*.py
!/code/golang/**/*.go !/code/golang/**/*.go
!/code/golang/go.mod !/code/golang/go.mod
!/code/golang/assets/HELP
!/code/golang/assets/VERSION
!/code/golang/assets/LOGO
!/code/golang/assets/config.yml
!/code/*/requirements !/code/*/requirements
!/code/config.yml !/code/config.yml
## nicht synchronisieren: ## nicht synchronisieren:

View File

@ -1,11 +0,0 @@
Gebrauchsanleitung
~~~~~~~~~~~~~~~~~~
- Version und help:
ads \033[1mversion\033[0m
ads \033[1mhelp\033[0m
- Um die Algorithmen laufen zu lassen
ads \033[1mrun\033[0m [\033[1m--debug\033[0m] [\033[1m--config\033[0m=\033[2m<name of config file>\033[0m]

View File

@ -1,3 +0,0 @@
+--------------------+
| \033[32;1mAlgoDat I\033[0m |
+--------------------+

View File

@ -1 +0,0 @@
X.Y.Z

View File

@ -1,7 +0,0 @@
info:
title: "App für ADS1"
description: "Interne Configurationsdatei"
options:
display: true
checks: false
metrics: true

View File

@ -64,20 +64,14 @@ func FancyBinarySearch(input_L []int, input_x int) (int, error) {
do_once := true do_once := true
for do_once { for do_once {
do_once = false do_once = false
// Start Message
setup.DisplayStartOfAlgorithm(name, inputs) setup.DisplayStartOfAlgorithm(name, inputs)
// Metriken initialisieren
metrics.RestartMetrics() metrics.RestartMetrics()
// Prechecks: // Prechecks:
if setup.AppConfigPerformChecks() {
err = preChecks(input_L, input_x) err = preChecks(input_L, input_x)
if err != nil { if err != nil {
break break
} }
}
// Ausführung des Algorithmus: // Ausführung des Algorithmus:
output_index = BinarySearch(input_L, input_x) output_index = BinarySearch(input_L, input_x)
@ -85,22 +79,16 @@ func FancyBinarySearch(input_L []int, input_x int) (int, error) {
"index": output_index, "index": output_index,
} }
// Metriken anzeigen // Letzte Messages:
if setup.AppConfigShowMetrics() {
setup.DisplayMetrics() setup.DisplayMetrics()
}
// End Message
setup.DisplayEndOfAlgorithm(outputs) setup.DisplayEndOfAlgorithm(outputs)
// Postchecks: // Postchecks:
if setup.AppConfigPerformChecks() {
err = postChecks(input_L, input_x, output_index) err = postChecks(input_L, input_x, output_index)
if err != nil { if err != nil {
break break
} }
} }
}
return output_index, err return output_index, err
} }

View File

@ -66,20 +66,14 @@ func FancyInterpolationSearch(input_L []int, input_x int, input_u int, input_v i
do_once := true do_once := true
for do_once { for do_once {
do_once = false do_once = false
// Start Message
setup.DisplayStartOfAlgorithm(name, inputs) setup.DisplayStartOfAlgorithm(name, inputs)
// Metriken initialisieren
metrics.RestartMetrics() metrics.RestartMetrics()
// Prechecks: // Prechecks:
if setup.AppConfigPerformChecks() {
err = preChecks(input_L, input_x, input_u, input_v) err = preChecks(input_L, input_x, input_u, input_v)
if err != nil { if err != nil {
break break
} }
}
// Ausführung des Algorithmus: // Ausführung des Algorithmus:
output_index = InterpolationSearch(input_L, input_x, input_u, input_v) output_index = InterpolationSearch(input_L, input_x, input_u, input_v)
@ -87,22 +81,16 @@ func FancyInterpolationSearch(input_L []int, input_x int, input_u int, input_v i
"index": output_index, "index": output_index,
} }
// Metriken anzeigen // Letzte Messages:
if setup.AppConfigShowMetrics() {
setup.DisplayMetrics() setup.DisplayMetrics()
}
// End Message
setup.DisplayEndOfAlgorithm(outputs) setup.DisplayEndOfAlgorithm(outputs)
// Postchecks: // Postchecks:
if setup.AppConfigPerformChecks() {
err = postChecks(input_L, input_x, output_index) err = postChecks(input_L, input_x, output_index)
if err != nil { if err != nil {
break break
} }
} }
}
return output_index, err return output_index, err
} }

View File

@ -61,20 +61,14 @@ func FancyFindIthSmallest(input_L []int, input_i int) (int, error) {
do_once := true do_once := true
for do_once { for do_once {
do_once = false do_once = false
// Start Message
setup.DisplayStartOfAlgorithm(name, inputs) setup.DisplayStartOfAlgorithm(name, inputs)
// Metriken initialisieren
metrics.RestartMetrics() metrics.RestartMetrics()
// Prechecks: // Prechecks:
if setup.AppConfigPerformChecks() {
err = preChecks(input_L, input_i) err = preChecks(input_L, input_i)
if err != nil { if err != nil {
break break
} }
}
// Ausführung des Algorithmus: // Ausführung des Algorithmus:
output_value = FindIthSmallest(input_L, input_i) output_value = FindIthSmallest(input_L, input_i)
@ -82,22 +76,16 @@ func FancyFindIthSmallest(input_L []int, input_i int) (int, error) {
"value": output_value, "value": output_value,
} }
// Metriken anzeigen // Letzte Messages:
if setup.AppConfigShowMetrics() {
setup.DisplayMetrics() setup.DisplayMetrics()
}
// End Message
setup.DisplayEndOfAlgorithm(outputs) setup.DisplayEndOfAlgorithm(outputs)
// Postchecks: // Postchecks:
if setup.AppConfigPerformChecks() {
err = postChecks(input_L, input_i, output_value) err = postChecks(input_L, input_i, output_value)
if err != nil { if err != nil {
break break
} }
} }
}
return output_value, err return output_value, err
} }
@ -121,20 +109,14 @@ func FancyFindIthSmallestDC(input_L []int, input_i int) (int, error) {
do_once := true do_once := true
for do_once { for do_once {
do_once = false do_once = false
// Start Message
setup.DisplayStartOfAlgorithm(name, inputs) setup.DisplayStartOfAlgorithm(name, inputs)
// Metriken initialisieren
metrics.RestartMetrics() metrics.RestartMetrics()
// Prechecks: // Prechecks:
if setup.AppConfigPerformChecks() {
err = preChecks(input_L, input_i) err = preChecks(input_L, input_i)
if err != nil { if err != nil {
break break
} }
}
// Ausführung des Algorithmus: // Ausführung des Algorithmus:
output_value = FindIthSmallestDC(input_L, input_i) output_value = FindIthSmallestDC(input_L, input_i)
@ -142,22 +124,16 @@ func FancyFindIthSmallestDC(input_L []int, input_i int) (int, error) {
"value": output_value, "value": output_value,
} }
// Metriken anzeigen // Letzte Messages:
if setup.AppConfigShowMetrics() {
setup.DisplayMetrics() setup.DisplayMetrics()
}
// End Message
setup.DisplayEndOfAlgorithm(outputs) setup.DisplayEndOfAlgorithm(outputs)
// Postchecks: // Postchecks:
if setup.AppConfigPerformChecks() {
err = postChecks(input_L, input_i, output_value) err = postChecks(input_L, input_i, output_value)
if err != nil { if err != nil {
break break
} }
} }
}
return output_value, err return output_value, err
} }

View File

@ -65,20 +65,14 @@ func FancyJumpSearchLinear(input_L []int, input_x int, input_m int) (int, error)
do_once := true do_once := true
for do_once { for do_once {
do_once = false do_once = false
// Start Message
setup.DisplayStartOfAlgorithm(name, inputs) setup.DisplayStartOfAlgorithm(name, inputs)
// Metriken initialisieren
metrics.RestartMetrics() metrics.RestartMetrics()
// Prechecks: // Prechecks:
if setup.AppConfigPerformChecks() {
err = preChecks(input_L, input_x, input_m) err = preChecks(input_L, input_x, input_m)
if err != nil { if err != nil {
break break
} }
}
// Ausführung des Algorithmus: // Ausführung des Algorithmus:
output_index = JumpSearchLinear(input_L, input_x, input_m) output_index = JumpSearchLinear(input_L, input_x, input_m)
@ -86,22 +80,16 @@ func FancyJumpSearchLinear(input_L []int, input_x int, input_m int) (int, error)
"index": output_index, "index": output_index,
} }
// Metriken anzeigen // Letzte Messages:
if setup.AppConfigShowMetrics() {
setup.DisplayMetrics() setup.DisplayMetrics()
}
// End Message
setup.DisplayEndOfAlgorithm(outputs) setup.DisplayEndOfAlgorithm(outputs)
// Postchecks: // Postchecks:
if setup.AppConfigPerformChecks() {
err = postChecks(input_L, input_x, output_index) err = postChecks(input_L, input_x, output_index)
if err != nil { if err != nil {
break break
} }
} }
}
return output_index, err return output_index, err
} }
@ -125,20 +113,14 @@ func FancyJumpSearchExponentiell(input_L []int, input_x int) (int, error) {
do_once := true do_once := true
for do_once { for do_once {
do_once = false do_once = false
// Start Message
setup.DisplayStartOfAlgorithm(name, inputs) setup.DisplayStartOfAlgorithm(name, inputs)
// Metriken initialisieren
metrics.RestartMetrics() metrics.RestartMetrics()
// Prechecks: // Prechecks:
if setup.AppConfigPerformChecks() {
err = preChecks(input_L, input_x) err = preChecks(input_L, input_x)
if err != nil { if err != nil {
break break
} }
}
// Ausführung des Algorithmus: // Ausführung des Algorithmus:
output_index = JumpSearchExponentiell(input_L, input_x) output_index = JumpSearchExponentiell(input_L, input_x)
@ -146,22 +128,16 @@ func FancyJumpSearchExponentiell(input_L []int, input_x int) (int, error) {
"index": output_index, "index": output_index,
} }
// Metriken anzeigen // Letzte Messages:
if setup.AppConfigShowMetrics() {
setup.DisplayMetrics() setup.DisplayMetrics()
}
// End Message
setup.DisplayEndOfAlgorithm(outputs) setup.DisplayEndOfAlgorithm(outputs)
// Postchecks: // Postchecks:
if setup.AppConfigPerformChecks() {
err = postChecks(input_L, input_x, output_index) err = postChecks(input_L, input_x, output_index)
if err != nil { if err != nil {
break break
} }
} }
}
return output_index, err return output_index, err
} }

View File

@ -59,20 +59,14 @@ func FancyFindPoison(input_L []int) (int, error) {
do_once := true do_once := true
for do_once { for do_once {
do_once = false do_once = false
// Start Message
setup.DisplayStartOfAlgorithm(name, inputs) setup.DisplayStartOfAlgorithm(name, inputs)
// Metriken initialisieren
metrics.RestartMetrics() metrics.RestartMetrics()
// Prechecks: // Prechecks:
if setup.AppConfigPerformChecks() {
err = preChecks(input_L) err = preChecks(input_L)
if err != nil { if err != nil {
break break
} }
}
// Ausführung des Algorithmus: // Ausführung des Algorithmus:
output_index = FindPoison(input_L) output_index = FindPoison(input_L)
@ -80,22 +74,16 @@ func FancyFindPoison(input_L []int) (int, error) {
"index": output_index, "index": output_index,
} }
// Metriken anzeigen // Letzte Messages:
if setup.AppConfigShowMetrics() {
setup.DisplayMetrics() setup.DisplayMetrics()
}
// End Message
setup.DisplayEndOfAlgorithm(outputs) setup.DisplayEndOfAlgorithm(outputs)
// Postchecks: // Postchecks:
if setup.AppConfigPerformChecks() {
err = postChecks(input_L, output_index) err = postChecks(input_L, output_index)
if err != nil { if err != nil {
break break
} }
} }
}
return output_index, err return output_index, err
} }
@ -118,20 +106,14 @@ func FancyFindPoisonFast(input_L []int) (int, error) {
do_once := true do_once := true
for do_once { for do_once {
do_once = false do_once = false
// Start Message
setup.DisplayStartOfAlgorithm(name, inputs) setup.DisplayStartOfAlgorithm(name, inputs)
// Metriken initialisieren
metrics.RestartMetrics() metrics.RestartMetrics()
// Prechecks: // Prechecks:
if setup.AppConfigPerformChecks() {
err = preChecks(input_L) err = preChecks(input_L)
if err != nil { if err != nil {
break break
} }
}
// Ausführung des Algorithmus: // Ausführung des Algorithmus:
output_index = FindPoisonFast(input_L) output_index = FindPoisonFast(input_L)
@ -139,22 +121,16 @@ func FancyFindPoisonFast(input_L []int) (int, error) {
"index": output_index, "index": output_index,
} }
// Metriken anzeigen // Letzte Messages:
if setup.AppConfigShowMetrics() {
setup.DisplayMetrics() setup.DisplayMetrics()
}
// End Message
setup.DisplayEndOfAlgorithm(outputs) setup.DisplayEndOfAlgorithm(outputs)
// Postchecks: // Postchecks:
if setup.AppConfigPerformChecks() {
err = postChecks(input_L, output_index) err = postChecks(input_L, output_index)
if err != nil { if err != nil {
break break
} }
} }
}
return output_index, err return output_index, err
} }

View File

@ -62,20 +62,14 @@ func FancySequentialSearch(input_L []int, input_x int) (int, error) {
do_once := true do_once := true
for do_once { for do_once {
do_once = false do_once = false
// Start Message
setup.DisplayStartOfAlgorithm(name, inputs) setup.DisplayStartOfAlgorithm(name, inputs)
// Metriken initialisieren
metrics.RestartMetrics() metrics.RestartMetrics()
// Prechecks: // Prechecks:
if setup.AppConfigPerformChecks() {
err = preChecks(input_L, input_x) err = preChecks(input_L, input_x)
if err != nil { if err != nil {
break break
} }
}
// Ausführung des Algorithmus: // Ausführung des Algorithmus:
output_index = SequentialSearch(input_L, input_x) output_index = SequentialSearch(input_L, input_x)
@ -83,22 +77,16 @@ func FancySequentialSearch(input_L []int, input_x int) (int, error) {
"index": output_index, "index": output_index,
} }
// Metriken anzeigen // Letzte Messages:
if setup.AppConfigShowMetrics() {
setup.DisplayMetrics() setup.DisplayMetrics()
}
// End Message
setup.DisplayEndOfAlgorithm(outputs) setup.DisplayEndOfAlgorithm(outputs)
// Postchecks: // Postchecks:
if setup.AppConfigPerformChecks() {
err = postChecks(input_L, input_x, output_index) err = postChecks(input_L, input_x, output_index)
if err != nil { if err != nil {
break break
} }
} }
}
return output_index, err return output_index, err
} }

View File

@ -53,20 +53,14 @@ func FancyMaxSubSum(input_L []int) (int, int, int, error) {
do_once := true do_once := true
for do_once { for do_once {
do_once = false do_once = false
// Start Message
setup.DisplayStartOfAlgorithm(name, inputs) setup.DisplayStartOfAlgorithm(name, inputs)
// Metriken initialisieren
metrics.RestartMetrics() metrics.RestartMetrics()
// Prechecks: // Prechecks:
if setup.AppConfigPerformChecks() {
err = preChecks(input_L) err = preChecks(input_L)
if err != nil { if err != nil {
break break
} }
}
// Ausführung des Algorithmus: // Ausführung des Algorithmus:
output_maxSum, output_indexFrom, output_indexTo = MaxSubSum(input_L) output_maxSum, output_indexFrom, output_indexTo = MaxSubSum(input_L)
@ -76,22 +70,16 @@ func FancyMaxSubSum(input_L []int) (int, int, int, error) {
"index_to": output_indexTo, "index_to": output_indexTo,
} }
// Metriken anzeigen // Letzte Messages:
if setup.AppConfigShowMetrics() {
setup.DisplayMetrics() setup.DisplayMetrics()
}
// End Message
setup.DisplayEndOfAlgorithm(outputs) setup.DisplayEndOfAlgorithm(outputs)
// Postchecks: // Postchecks:
if setup.AppConfigPerformChecks() {
err = postChecks(input_L, output_maxSum, output_indexFrom, output_indexTo) err = postChecks(input_L, output_maxSum, output_indexFrom, output_indexTo)
if err != nil { if err != nil {
break break
} }
} }
}
return output_maxSum, output_indexFrom, output_indexTo, err return output_maxSum, output_indexFrom, output_indexTo, err
} }
@ -116,20 +104,14 @@ func FancyMaxSubSumDC(input_L []int) (int, int, int, error) {
do_once := true do_once := true
for do_once { for do_once {
do_once = false do_once = false
// Start Message
setup.DisplayStartOfAlgorithm(name, inputs) setup.DisplayStartOfAlgorithm(name, inputs)
// Metriken initialisieren
metrics.RestartMetrics() metrics.RestartMetrics()
// Prechecks: // Prechecks:
if setup.AppConfigPerformChecks() {
err = preChecks(input_L) err = preChecks(input_L)
if err != nil { if err != nil {
break break
} }
}
// Ausführung des Algorithmus: // Ausführung des Algorithmus:
output_maxSum, output_indexFrom, output_indexTo = MaxSubSumDC(input_L) output_maxSum, output_indexFrom, output_indexTo = MaxSubSumDC(input_L)
@ -139,22 +121,16 @@ func FancyMaxSubSumDC(input_L []int) (int, int, int, error) {
"index_to": output_indexTo, "index_to": output_indexTo,
} }
// Metriken anzeigen // Letzte Messages:
if setup.AppConfigShowMetrics() {
setup.DisplayMetrics() setup.DisplayMetrics()
}
// End Message
setup.DisplayEndOfAlgorithm(outputs) setup.DisplayEndOfAlgorithm(outputs)
// Postchecks: // Postchecks:
if setup.AppConfigPerformChecks() {
err = postChecks(input_L, output_maxSum, output_indexFrom, output_indexTo) err = postChecks(input_L, output_maxSum, output_indexFrom, output_indexTo)
if err != nil { if err != nil {
break break
} }
} }
}
return output_maxSum, output_indexFrom, output_indexTo, err return output_maxSum, output_indexFrom, output_indexTo, err
} }

View File

@ -94,17 +94,3 @@ func FormatTextBlockAsList(text string, options ...bool) []string {
func StripAnsi(text string) string { func StripAnsi(text string) string {
return re.Sub(`\x1b[^m]*m`, ``, text) 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)
}

View File

@ -7,7 +7,6 @@ package endpoints
import ( import (
"ads/internal/core/logging" "ads/internal/core/logging"
"ads/internal/setup" "ads/internal/setup"
"ads/internal/setup/cli"
) )
/* ---------------------------------------------------------------- * /* ---------------------------------------------------------------- *
@ -25,12 +24,11 @@ func Version() {
func Help() { func Help() {
logging.SetForce(true) logging.SetForce(true)
cli.ParseCli([]string{}) // <- generiere leere Instanz für Parser, um voll Hilfsanleitug zu zeigen
logging.LogPlain( logging.LogPlain(
"", "",
setup.Logo(), setup.Logo(),
// setup.Help(), // cli.Parser.Usage(nil),
cli.Parser.Usage(nil), setup.Help(),
"", "",
) )
} }

View File

@ -26,13 +26,6 @@ var optionsQuiet = argparse.Options{
Default: false, 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{ var optionsDebug = argparse.Options{
Help: "Blendet die Debugging-Befehle ein.", Help: "Blendet die Debugging-Befehle ein.",
Required: false, Required: false,
@ -40,7 +33,7 @@ var optionsDebug = argparse.Options{
} }
var optionsColour = argparse.Options{ var optionsColour = argparse.Options{
Help: "Ob Logging färblich angezeigt wird.", Help: "Ob Logging färblich angezeigt wird (default=true).",
Required: false, Required: false,
// NOTE: no `Boolean` option available! // NOTE: no `Boolean` option available!
Default: "true", Default: "true",
@ -65,7 +58,6 @@ func ParseCli(args []string) (*types.CliArguments, error) {
Run: Parser.NewCommand("run", "Ruft Endpunkt auf, der die Algorithmen laufen lässt."), Run: Parser.NewCommand("run", "Ruft Endpunkt auf, der die Algorithmen laufen lässt."),
Quiet: Parser.Flag("q", "quiet", &optionsQuiet), Quiet: Parser.Flag("q", "quiet", &optionsQuiet),
Debug: Parser.Flag("", "debug", &optionsDebug), Debug: Parser.Flag("", "debug", &optionsDebug),
Checks: Parser.String("", "checks", &optionsChecks),
Colour: Parser.String("", "colour", &optionsColour), Colour: Parser.String("", "colour", &optionsColour),
ConfigFile: Parser.String("", "config", &optionsConfigFile), ConfigFile: Parser.String("", "config", &optionsConfigFile),
} }

View File

@ -1,40 +0,0 @@
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
}

View File

@ -54,7 +54,3 @@ func Logo() string {
func Version() string { func Version() string {
return strings.Trim(ReadAsset("version"), "\n") return strings.Trim(ReadAsset("version"), "\n")
} }
func AppConfigYaml() string {
return strings.Trim(ReadAsset("appconfig"), "\n")
}

View File

@ -1,27 +0,0 @@
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"`
}

View File

@ -5,9 +5,11 @@ package types
* ---------------------------------------------------------------- */ * ---------------------------------------------------------------- */
import ( import (
"strings"
"github.com/akamensky/argparse" "github.com/akamensky/argparse"
"ads/internal/core/utils" "ads/pkg/re"
) )
/* ---------------------------------------------------------------- * /* ---------------------------------------------------------------- *
@ -20,7 +22,6 @@ type CliArguments struct {
Run *argparse.Command Run *argparse.Command
Quiet *bool Quiet *bool
Debug *bool Debug *bool
Checks *string
Colour *string Colour *string
ConfigFile *string ConfigFile *string
} }
@ -29,22 +30,16 @@ type CliArguments struct {
* METHODS convert string option to boolean * METHODS convert string option to boolean
* ---------------------------------------------------------------- */ * ---------------------------------------------------------------- */
func (arguments CliArguments) QuietModeOn() bool { func IsTrue(text string) bool {
return *arguments.Quiet text = strings.TrimSpace(text)
return re.Matches(`(?i)(^(true|t|yes|y|1|\+|\+1)$)`, text)
} }
func (arguments CliArguments) DebugModeOn() bool { func IsFalse(text string) bool {
return *arguments.Debug text = strings.TrimSpace(text)
return re.Matches(`(?i)(^(false|f|no|n|0|-|-1)$)`, text)
} }
func (arguments CliArguments) ShowChecks() bool { func (arguments *CliArguments) ShowColour() bool {
return !utils.IsFalse(*arguments.Checks) return !IsFalse(*arguments.Colour)
}
func (arguments CliArguments) ShowColour() bool {
return !utils.IsFalse(*arguments.Colour)
}
func (arguments CliArguments) GetConfigFile() string {
return *arguments.ConfigFile
} }

View File

@ -24,7 +24,6 @@ var (
//go:embed assets/* //go:embed assets/*
res embed.FS res embed.FS
assets = map[string]string{ assets = map[string]string{
"appconfig": "assets/config.yml",
"version": "assets/VERSION", "version": "assets/VERSION",
"logo": "assets/LOGO", "logo": "assets/LOGO",
"help": "assets/HELP", "help": "assets/HELP",
@ -39,34 +38,25 @@ func main() {
var err error var err error
var arguments *types.CliArguments var arguments *types.CliArguments
// assets festlegen // set assets
setup.Res = res setup.Res = res
setup.Assets = assets setup.Assets = assets
// cli arguments parsen // parse cli arguments
arguments, err = cli.ParseCli(os.Args) arguments, err = cli.ParseCli(os.Args)
// initialisiere basic optionen wie Logging // initialise logging options
if err == nil { if err == nil {
logging.SetQuietMode(arguments.QuietModeOn()) logging.SetQuietMode(*arguments.Quiet)
logging.SetDebugMode(arguments.DebugModeOn()) logging.SetDebugMode(*arguments.Debug)
logging.SetAnsiMode(arguments.ShowColour()) 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 err == nil {
if arguments.Version.Happened() { if arguments.Version.Happened() {
endpoints.Version() endpoints.Version()
} else if arguments.Run.Happened() { } else if arguments.Run.Happened() {
err = endpoints.Run(arguments.GetConfigFile()) err = endpoints.Run(*arguments.ConfigFile)
} else { // } else if arguments.Help.Happened() { } else { // } else if arguments.Help.Happened() {
endpoints.Help() endpoints.Help()
} }