Added option to update RHVoice dictionaries.

This commit is contained in:
Storm Dragon
2026-04-18 06:31:26 -04:00
parent 9f0ee5d5b5
commit 97863ed6d8
2 changed files with 60 additions and 0 deletions

View File

@@ -0,0 +1,56 @@
#!/usr/bin/env bash
# shellcheck disable=SC2154
# sudoFlags is set by configure-stormux.sh before this file is sourced.
update_rhvoice_dictionaries() {
local targetDirectory="/etc/RHVoice/dicts/English"
local baseUrl="https://git.stormux.org/storm/rhvoice-english/raw/branch/master/English"
local dictionaryFiles=(
"wordfix.txt"
"namefix.txt"
)
local tempDirectory
local dictionaryFile
tempDirectory="$(mktemp -d)" || {
msgbox "Failed to create a temporary directory for RHVoice dictionary updates."
return 1
}
cleanup() {
rm -rf "$tempDirectory"
}
trap cleanup RETURN
infobox "Downloading RHVoice dictionaries..."
for dictionaryFile in "${dictionaryFiles[@]}"; do
if ! curl -fL --retry 10 -o "${tempDirectory}/${dictionaryFile}" "${baseUrl}/${dictionaryFile}"; then
msgbox "Failed to download ${dictionaryFile} from the RHVoice English dictionary repository."
return 1
fi
done
if ! sudo "${sudoFlags[@]}" mkdir -p "$targetDirectory"; then
msgbox "Failed to create ${targetDirectory}."
return 1
fi
for dictionaryFile in "${dictionaryFiles[@]}"; do
if ! sudo "${sudoFlags[@]}" install -m 0644 "${tempDirectory}/${dictionaryFile}" "${targetDirectory}/${dictionaryFile}"; then
msgbox "Failed to install ${dictionaryFile} to ${targetDirectory}."
return 1
fi
done
if [[ "$(yesno "RHVoice dictionaries updated successfully.\n\nRestart speech-dispatcher?")" == "Yes" ]]; then
if ! sudo "${sudoFlags[@]}" killall speech-dispatcher; then
msgbox "RHVoice dictionaries were updated, but restarting speech-dispatcher failed."
return 1
fi
fi
msgbox "RHVoice dictionaries updated successfully."
return 0
}
update_rhvoice_dictionaries

View File

@@ -118,6 +118,9 @@ while [[ "$choice" != "Exit" ]]; do
sudo "${sudoFlags[@]}" git pull
exit $?
;;
"Update RHVoice dictionaries")
source .includes/rhvoice-dictionaries.sh
;;
"Convert to Server")
source .includes/convert-to-server.sh
;;
@@ -151,6 +154,7 @@ while [[ "$choice" != "Exit" ]]; do
"Get help on IRC"
"Update configure-stormux"
"Update EEPROM"
"Update RHVoice dictionaries"
"Convert to Server"
"Configure StormUX Repository"
)