Bash Skripte für das Startup gebaut

This commit is contained in:
mistangl
2025-07-31 15:03:20 +02:00
parent 0a3fe7dda8
commit b39235ba70
8 changed files with 144 additions and 0 deletions
+4
View File
@@ -0,0 +1,4 @@
#!/bin/bash
source manage_interpreter.sh activate_interpreter
python "$PROJECT_LIB/drawdxf.py" "$@"
source manage_interpreter.sh deactivate_interpreter
+6
View File
@@ -0,0 +1,6 @@
#!/bin/bash
# getpositions.sh
#!/bin/bash
source manage_interpreter.sh activate_interpreter
python "$PROJECT_LIB/getpositions.py" "$@"
source manage_interpreter.sh deactivate_interpreter
+16
View File
@@ -0,0 +1,16 @@
#!/bin/bash
source setenv.sh
if [ ! -d "$PROJECT/.venv" ]; then
echo "Initialisiere Python virtual environment..."
python3 -m venv "$PROJECT/.venv" --upgrade-deps
echo "Erfolgreich."
source "$PROJECT/.venv/bin/activate"
echo "Installiere erforderliche Python Packages..."
pip install -r "$PROJECT_LIB/requirements.txt" -q
echo "Erfolgreich"
deactivate
else
echo "Erforderliche Python Packages bereits installiert!"
fi
+54
View File
@@ -0,0 +1,54 @@
#!/bin/bash
usage() {
echo "Usage: $0 <dxfinWorkOrdner.dxf>"
exit 1
}
if [ $# -eq 0 ]; then
usage
fi
INPUT_FILE="$1"
FILENAME=$(basename "$INPUT_FILE" .dxf)
DIR=$(dirname "$INPUT_FILE")
source /opt/dxf-calculator/kabellaengen/bin/setenv.sh
# Namen der Zwischenergebnis Dateien
JSON_POS="${FILENAME}_positionsconv.json"
JSON_TODRAW="${FILENAME}_todraw.json"
# Namen der Ergebnisdateien
ERROR_DOUBLE="${FILENAME}_errors.json"
RESULT_TIA="${FILENAME}-*_TIA.xlsx"
echo
echo "=== Fetching Positions ==="
./getpositions.sh --filename "$1" -s -r -w "$JSON_POS" -e "$ERROR_DOUBLE"
if [ -f "$PROJECT_WORK/$ERROR_DOUBLE" ]; then
echo "== failed: duplicate IDs in given layout"
read -p "Press any key to continue..."
mv "$PROJECT_WORK/$ERROR_DOUBLE" "$PROJECT_IO_RESULTS"
exit 1
fi
if [ ! -f "$PROJECT_WORK/$JSON_POS" ]; then
echo "== failed: getpositions"
read -p "Press any key to continue..."
exit 1
fi
echo "=== Creating Excel Files for TIA, WSCAD, .. ==="
./portalexport.sh --filename "$JSON_POS" --outname "$FILENAME"
if [ ! -f "$PROJECT_WORK/$RESULT_TIA" ]; then
echo "== failed: creating .xlsx files"
read -p "Press any key to continue..."
exit 1
fi
mkdir -p "$PROJECT_IO_RESULTS/$FILENAME"
echo "move $PROJECT_WORK/${FILENAME}-* $PROJECT_IO_RESULTS/$FILENAME"
mv "$PROJECT_WORK/${FILENAME}"-* "$PROJECT_IO_RESULTS/$FILENAME"
read -p "Press any key to continue..."
+30
View File
@@ -0,0 +1,30 @@
#!/bin/bash
activate_interpreter() {
if [ -f "$PROJECT/.venv/bin/activate" ]; then
source "$PROJECT/.venv/bin/activate"
else
echo "Virtual environment not found. Run install_py.sh first."
exit 1
fi
}
deactivate_interpreter() {
if [ -n "$VIRTUAL_ENV" ]; then
deactivate
fi
}
# Call function based on argument
case "$1" in
activate_interpreter)
activate_interpreter
;;
deactivate_interpreter)
deactivate_interpreter
;;
*)
echo "Usage: $0 {activate_interpreter|deactivate_interpreter}"
exit 1
;;
esac
+4
View File
@@ -0,0 +1,4 @@
#!/bin/bash
source manage_interpreter.sh activate_interpreter
python "$PROJECT_LIB/portalexport.py" "$@"
source manage_interpreter.sh deactivate_interpreter
Executable
+4
View File
@@ -0,0 +1,4 @@
#!/bin/bash
source manage_interpreter.sh activate_interpreter
python "$PROJECT_LIB/routing.py" "$@"
source manage_interpreter.sh deactivate_interpreter
Executable
+26
View File
@@ -0,0 +1,26 @@
#!/bin/bash
export PROJECT=/opt/dxf-calculator/kabellaengen
export PROJECT_BIN="$PROJECT/bin"
export PROJECT_CFG="$PROJECT/cfg"
export PROJECT_DOC="$PROJECT/doc"
export PROJECT_LIB="$PROJECT/lib"
export PROJECT_DATA="$PROJECT/data"
export PROJECT_WORK="$PROJECT/work"
export PROJECT_TEST="$PROJECT/testdata"
# Linux executable instead of Windows .exe
export SIVAS_TEILESTAMM="/usr/local/bin/KSbExcelExportSivasTeilestamm"
export SIVAS_EXCEL_EXPORT_DIR="$PROJECT_DATA"
# Create directories if they don't exist
mkdir -p "$PROJECT/work"
mkdir -p "$PROJECT/data"
# Samba shares (adjust mount points as needed)
export PROJECT_IO_RESULTS=$PROJECT_WORK
export PROJECT_BOM_RESULTS=$PROJECT_WORK
export INSTALL_DIR="$HOME/kabeltool"
# Add project bin to PATH
export PATH="$PROJECT_BIN:$PATH"