Make sure dlls are downloaded and installed even if missed in an earlier step.
This commit is contained in:
@@ -107,6 +107,40 @@ start_nvda2speechd() {
|
|||||||
sleep 0.2
|
sleep 0.2
|
||||||
}
|
}
|
||||||
|
|
||||||
|
download_wine_accessibility_file() {
|
||||||
|
local fileName="$1"
|
||||||
|
local sourceUrl="$2"
|
||||||
|
local outputPath="$3"
|
||||||
|
local tempPath
|
||||||
|
|
||||||
|
[[ -s "$outputPath" ]] && return 0
|
||||||
|
command -v curl > /dev/null 2>&1 || return 1
|
||||||
|
|
||||||
|
tempPath="${outputPath}.tmp"
|
||||||
|
printf 'Downloading %s\n' "$fileName"
|
||||||
|
if curl --fail --show-error --location --connect-timeout 20 --retry 3 --retry-delay 2 --output "$tempPath" "$sourceUrl"; then
|
||||||
|
mv -f "$tempPath" "$outputPath"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -f "$tempPath"
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
ensure_wine_accessibility_files() {
|
||||||
|
local accessibilityDir="${HOME}/.local/share/stormux/wine-accessibility"
|
||||||
|
local ipfsGateway="${ipfsGateway:-https://ipfs.stormux.org}"
|
||||||
|
local nvdaControllerClient32Dll="${ipfsGateway}/ipfs/QmTrRrT4QFKSkZ8ivfUawA6iJ6adEyyogccE3nLDTfSK8u?filename=nvdaControllerClient32.dll"
|
||||||
|
local nvdaControllerClient64Dll="${ipfsGateway}/ipfs/QmaYE7RFDtwHCiXCVLcuA3esfFx6E7koidtvrck9AwPuuN?filename=nvdaControllerClient64.dll"
|
||||||
|
local nvda2speechdBinary="${ipfsGateway}/ipfs/QmPxhoNsoFoJC7bCfioBBCcK8tEoSoYpm342z6u7KjFsVz?filename=nvda2speechd"
|
||||||
|
|
||||||
|
mkdir -p "$accessibilityDir"
|
||||||
|
download_wine_accessibility_file "nvdaControllerClient32.dll" "$nvdaControllerClient32Dll" "${accessibilityDir}/nvdaControllerClient32.dll" || return 1
|
||||||
|
download_wine_accessibility_file "nvdaControllerClient64.dll" "$nvdaControllerClient64Dll" "${accessibilityDir}/nvdaControllerClient64.dll" || return 1
|
||||||
|
download_wine_accessibility_file "nvda2speechd" "$nvda2speechdBinary" "${accessibilityDir}/nvda2speechd" || return 1
|
||||||
|
chmod 755 "${accessibilityDir}/nvda2speechd"
|
||||||
|
}
|
||||||
|
|
||||||
stop_nvda2speechd() {
|
stop_nvda2speechd() {
|
||||||
local bridgePid="$1"
|
local bridgePid="$1"
|
||||||
|
|
||||||
@@ -170,6 +204,9 @@ run_wine_path() {
|
|||||||
wineDir="$(winepath "${wineTarget%\\*}")" || return 1
|
wineDir="$(winepath "${wineTarget%\\*}")" || return 1
|
||||||
wineExec="${wineTarget##*\\}"
|
wineExec="${wineTarget##*\\}"
|
||||||
pushd "$wineDir" > /dev/null || return 1
|
pushd "$wineDir" > /dev/null || return 1
|
||||||
|
if ! ensure_wine_accessibility_files; then
|
||||||
|
printf 'Wine accessibility bridge files are missing and could not be downloaded.\n' >&2
|
||||||
|
fi
|
||||||
update_wine_nvda_dlls
|
update_wine_nvda_dlls
|
||||||
start_nvda2speechd bridgePid || true
|
start_nvda2speechd bridgePid || true
|
||||||
wine "$wineExec" || launchStatus=$?
|
wine "$wineExec" || launchStatus=$?
|
||||||
|
|||||||
Reference in New Issue
Block a user