Intégration macOS Bash Shell¶
Shell par défaut avant macOS Catalina (10.15). Depuis Catalina, macOS est livré avec Zsh comme shell par défaut. Si vous êtes sur un Mac moderne et que vous n’avez pas modifié votre shell, consultez plutôt le guide macOS Zsh Integration.
Vous pouvez vérifier votre shell actuel avec :
écho $SHELL
Pour faciliter l’interaction avec la CLI STT (Speech-to-Text), vous pouvez ajouter une fonction de raccourci à votre ~/.bash_profile. Cela vous permet de taper simplement « votre question » dans le terminal.
Instructions de configuration¶
Ouvrez votre configuration Bash avec un éditeur que vous aimez :
nano ~/.bash_profile open -e ~/.bash_profile # opens in TextEdit
Collez le bloc suivant à la fin du fichier :
please read newest updates in zsh - verson
# --- STT Project Path Resolution ---
unalias s 2>/dev/null
s() {
if [ $# -eq 0 ]; then
echo "question <your question>"
return 1
fi
update_github_ip
local TEMP_FILE=$(mktemp)
local SHORT_TIMEOUT_SECONDS=2
local LONG_TIMEOUT_SECONDS=70
# Path shortcuts
local PY_EXEC="$SL5NET_AURA_PROJECT_ROOT/.venv/bin/python3"
local CLI_SCRIPT="$SL5NET_AURA_PROJECT_ROOT/scripts/py/cli_client.py"
# --- 1. try
timeout $SHORT_TIMEOUT_SECONDS \
"$PY_EXEC" -u "$CLI_SCRIPT" "$*" \
--lang "de-DE" --unmasked < /dev/null > "$TEMP_FILE" 2>&1
local EXIT_CODE=$?
local OUTPUT=$(cat "$TEMP_FILE")
rm "$TEMP_FILE"
if echo "$OUTPUT" | grep -q "Verbindungsfehler" || ! pgrep -f "streamlit-chat.py" > /dev/null; then
echo "Service-Check: Backend oder Frontend fehlt. Starte neu..."
start_service
echo '++++++++++++++++++++++++++++++++++++++++++++++++++'
local KIWIX_SCRIPT="$SL5NET_AURA_PROJECT_ROOT/config/maps/plugins/standard_actions/wikipedia_local/de-DE/kiwix-docker-start-if-not-running.sh"
if [ -f "$KIWIX_SCRIPT" ]; then
bash "$KIWIX_SCRIPT"
fi
echo '++++++++++++++++++++++++++++++++++++++++++++++++++'
echo "BITTE ERNEUT EINGEBEN: s $*"
return 1
# 2. Timeout (124) OR success (0)
elif [ $EXIT_CODE -eq 124 ] || [ $EXIT_CODE -eq 0 ]; then
if [ $EXIT_CODE -eq 0 ]; then
echo "$OUTPUT"
return 0
fi
echo "answer > $SHORT_TIMEOUT_SECONDS sec. set Timeout= $LONG_TIMEOUT_SECONDS s..."
local TEMP_FILE_2=$(mktemp)
timeout $LONG_TIMEOUT_SECONDS \
"$PY_EXEC" -u "$CLI_SCRIPT" "$*" \
--lang "de-DE" --unmasked < /dev/null > "$TEMP_FILE_2" 2>&1
local EXIT_CODE_2=$?
local OUTPUT_2=$(cat "$TEMP_FILE_2")
rm "$TEMP_FILE_2"
echo "$OUTPUT_2"
if [ $EXIT_CODE_2 -ne 0 ]; then
echo "WARNUNG: Timeout > $LONG_TIMEOUT_SECONDS Sec. "
fi
return 0
else
echo "ERROR"
echo "$OUTPUT"
return $EXIT_CODE
fi
}
Rechargez votre configuration :
source ~/.bash_profile
Notes spécifiques à macOS¶
timeoutn’est pas intégré à macOS. Installez-le via Homebrew avant d’utiliser cette fonction :brew install coreutils
Après l’installation, timeout est disponible sous le nom gtimeout. Ajoutez un alias ou remplacez « timeout » par « gtimeout » dans la fonction ci-dessus :
alias timeout=gtimeout
Ajoutez l’alias au-dessus de la fonction s() dans votre ~/.bash_profile.
macOS utilise
~/.bash_profilepour les shells de connexion (Terminal.app ouvre les shells de connexion par défaut), alors que Linux utilise généralement~/.bashrc. Si vous souhaitez que la fonction soit disponible dans tous les contextes, vous pouvez vous procurer l’une à partir de l’autre :# Add to ~/.bash_profile: [ -f ~/.bashrc ] && source ~/.bashrc
macOS est livré avec Bash 3.2 (en raison de la licence GPLv3). Cette fonction est entièrement compatible avec Bash 3.2+. Si vous avez besoin de Bash 5, installez-le via Homebrew :
brew install bash
Chemin Python : Assurez-vous que votre environnement virtuel est configuré sur
$SL5NET_AURA_PROJECT_ROOT/.venv. Si vous gérez Python avecpyenvouconda, ajustezPY_EXECen conséquence.
Caractéristiques¶
Chemins dynamiques : recherche automatiquement la racine du projet via le fichier de marqueur
/tmp.Auto-Restart : si le backend est en panne, il tente d’exécuter
start_serviceet les services Wikipédia locaux.Smart Timeouts : essaie d’abord une réponse rapide de 2 secondes, puis revient à un mode de traitement approfondi de 70 secondes.