Blinken vor dem Abbigen ist wichtig
Blinken vor dem Abbigen ist wichtig
Freiwillige Selbstverpflichtung - für mich nur eine Ausrede
Apotheken-Lieferfahrzeuge parken häufig im Halteverbot oder blockieren Zufahrten und rechtfertigen das mit ‚Eiligen Arzneimitteln‘.
Ich fahre einen elektro- Firmeneinwagen und möchte den Strom den ich zu Hause geladen habe über die Arbeit abrechnen
Viele Entwickler nutzen Künstliche Intelligenz zur Codegenerierung, jedoch sollte KI-generierter Code in langfristigen Projekten wie Legacy-Code behandelt und durch manuell geschriebenen Code ersetzt oder überarbeitet werden.
Dieses Bash-Skript ermöglicht die effiziente Überwachung mehrstufiger, lang laufender Prozesse in einem dualen Tmux-Split-Screen. Auf der einen Seite wird der Prozessfortschritt in klar strukturierten Nachrichten visualisiert, die einzelnen Schritte werden gezielt hervorgehoben. Auf der anderen Seite zeichnet das Skript alle relevanten Logs in Echtzeit auf, um bei Bedarf auf detaillierte Informationen zugreifen zu können. Die Trennung von Fortschrittsanzeige und Debug-Logs sorgt dafür, dass die Nutzer nicht durch lange, unübersichtliche Log-Ausgaben scrollen müssen, während sie gleichzeitig jederzeit den Status des Builds und mögliche Fehlermeldungen im Blick behalten können. Im Fehlerfall steht die gesamte Log-Historie zur Verfügung, ohne dass wichtige Debug-Informationen verloren gehen.
Besondere Merkmale:

#!/bin/bash
function initTmux {
if [ ! -d "build" ]; then
echo "'build' directory does not exist. Please create it first.";
exit 1;
fi
: > build/build.log # Clear file if exists, else create
: > build/progress.log
if ! command -v tmux &> /dev/null; then
echo "tmux is not installed. Please install it using 'sudo apt-get install tmux'";
exit 1;
fi
tmux kill-session -t buildProcess 2>/dev/null || true
tmux new-session -d -s buildProcess "tail -f build/progress.log"
tmux split-window -v "./buildExample.sh run"
tmux select-pane -t 1
tmux attach-session -t buildProcess
}
# this is only for simulation of a running task and his output
function simulateTaskWithOutput {
local text=("Initializing warp drive engines..."
"Calibrating quantum field arrays "
"Compiling hyperspace navigation routes..."
"Decrypting galactic coordinates "
"Establishing communication link with main hub..."
"Error: subspace interference detected, rerouting signal..."
"Launching photon torpedoes"
"Activating shields at 100% power capacity."
"Initiating evasive maneuvers...")
for line in "${text[@]}"; do
echo "$line"
sleep 0.3
done
echo
}
function run {
exec > >(tee -a build/build.log)
exec 2> >(tee -a build/build.log >&2)
ORIGINAL_DIR=$(pwd)
function progressMessage {
echo -e "\e[0m$1\e[0m" >> $ORIGINAL_DIR/build/progress.log
}
function progressMessageSuccess {
echo -e "\e[32m$1\e[0m" >> $ORIGINAL_DIR/build/progress.log
}
function progressMessageWarning {
echo -e "\e[33m$1\e[0m" >> $ORIGINAL_DIR/build/progress.log
}
function progressMessageError {
echo -e "\e[31m$1\e[0m" >> $ORIGINAL_DIR/build/progress.log
}
progressMessageWarning "Logs stored in build/build.log";
sleep 1
progressMessage "Dummy Task 1: Example Task Running..."
simulateTaskWithOutput || { progressMessageError "Dummy Task 1 failed"; exit 1; } && progressMessageSuccess "Dummy Task 1 done"
progressMessage "Dummy Task 2: Example Task Running..."
simulateTaskWithOutput
progressMessageError "Dummy Task 2 failed";
progressMessage "Dummy Task 3: Another Task Running..."
simulateTaskWithOutput || progressMessageError "Dummy Task 3 failed, will continue"
sleep 2
progressMessageSuccess "Finished successful."
}
if [ "$#" -eq 0 ]; then
initTmux
else
if [ "$1" == "run" ]; then
run
fi
fi
Source see https://github.com/notdefine/E...
English Version: https://medium.com/@notdefine/...
Article relase date: / Last update: