From 189755e69afdcdacce35a12dd7908fe1baa2c380 Mon Sep 17 00:00:00 2001 From: raj_mathe Date: Sat, 30 Oct 2021 10:19:33 +0200 Subject: [PATCH] master > master: README --- README.md | 73 ++++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 62 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index f88458c..5811ffb 100644 --- a/README.md +++ b/README.md @@ -25,16 +25,49 @@ In diesem Repository findet man: ## Code ## -Im Unterordner [`code`](./code) kann man ein Python-Projekt finden, -in dem verschiedene Algorithmen implementiert werden -(siehe insbes. [`code/algorithms`](./code/algorithms)). +Im Unterordner [`code`](./code) kann man Codeprojekte in Python und Golang finden, in denen verschiedene Algorithmen implementiert werden +(siehe insbes. [`code/python/src/algorithms`](./code/python//src/algorithms) +und [`code/golang/pkg/algorithms`](./code/golang/pkg/algorithms)). Man kann gerne den Code benutzen, in einer eigenen Repository verändern, und mit den in dem Kurs präsentierten Algorithmen herumexperimentieren. ### Systemvoraussetzungen ### +#### Bashscripts #### + +Im Ordner [`scripts`](./scripts) sind mehrere Workflows als Bashscripts kodiert. (Man kann natürlich ohne sie arbeiten, insbesondere dann, wenn man einen guten IDE hat.) + +Zunächst braucht man einen Bashterminal. Das kommt mit OSX (Terminal) und Linux. Für Windows-User braucht man [git-for-windows](https://gitforwindows.org) zu installieren, was auch bash mit installiert. (Und für diejenigen, die VSCode oder andere IDEs benutzen, lässt sich bash als integrierten Terminal im IDE selbst verwenden.) + +Den Bashscripts benötigen Ausfuhrrechte. Hierfür führe man +```bash +chmod +x scripts/*.sh; +``` +aus. Das muss danach nie wiederholt werden. + +Jetzt können wir von dem Hauptordner des Repositorys Befehle wie +```bash +./scripts/build.sh +./scripts/build.sh ---mode setup +``` +usw. in der Bash-Console ausführen. + +#### Für das Golang-Projekt #### + +Man braucht [go](https://golang.org/dl/) Version **1.17.x**. (Man kann bestimmt bei späteren Releases höhere Versionen benutzen. Man muss lediglich dann in [`./code/golang/go.mod`](./code/golang/go.mod) die Version hochstellen und die Requirements nochmals installieren lassen.) Und einige Packages werden benötigen. Letztere lassen sich mittels +```bash +./scripts/build.sh --lang go --mode setup +``` +installieren. + +#### Für das Python-Projekt #### + Python version 3.x.x (idealerweise zumindest 3.9.5) plus einige Module (siehe [code/requirements](./code/requirements)). Letztere lassen sich mittels ```bash +./scripts/build.sh --lang python --mode setup +## mit virtuellem Env: +./scripts/build.sh --lang python --venv true --mode setup +## alternative: python3 -m pip install -r code/requirements; # linux, osx py -3 -m pip install -r code/requirements; # Windows ``` @@ -42,17 +75,35 @@ installieren. ### Ausführung ### -Um den Python Code auszuführen, bspw. im Bash: +#### Für das Golang-Projekt #### + +Zuerst den Artefakt kompilieren: ```bash +./scripts/build.sh --lang go --mode dist; +## oder: +go build -o "dist/ads" "code/golang/main.go"; +``` +und dann mit dem gebauten Artefakt arbeiten: +```bash +./dist/ads1 help; # zeigt Hilfsanleitung +./dist/ads1 version; # zeigt Version +./dist/ads1 run [--debug]; # führt code aus +``` + +#### Für das Python-Projekt #### + +```bash +pushd code/python/src; ## <- auf Pfad mit main.py wechseln + ## Anzeigen der Hilfsanleitung: -python3 code/main.py -h; # linux, OSX -py -3 code/main.py -h; # Windows +python3 main.py -h; # linux, OSX +py -3 main.py -h; # Windows ## Ausführung der Testfälle in code/config.yml: -python3 code/main.py all; # linux, OSX -py -3 code/main.py all; # Windows -## Mit Infos über Schritte: -python3 code/main.py --debug all; # linux, OSX -py -3 code/main.py --debug all; # Windows +python3 main.py run [--debug]; # linux, OSX +py -3 main.py run [--debug]; # Windows +## --debug Option benutzen, um Infos über Schritte zu zeigen. + +popd; ## <- zum vorherigen Pfad zurückwechseln ``` Oder man erstelle einen bash Skript wie `run.sh`, trage die Befehle da ein und führe ```bash