Tomas Korbar 5f009f
#!/bin/bash
Tomas Korbar 5f009f
Tomas Korbar 5f009f
# called by dracut
Tomas Korbar 5f009f
check() {
Tomas Korbar 5f009f
	require_binaries brltty || return 1
Tomas Korbar 5f009f
	return 0
Tomas Korbar 5f009f
}
Tomas Korbar 5f009f
Tomas Korbar 5f009f
# called by dracut
Tomas Korbar 5f009f
depends() {
Tomas Korbar 5f009f
	return 0
Tomas Korbar 5f009f
}
Tomas Korbar 5f009f
Tomas Korbar 5f009f
#called by dracut
Tomas Korbar 5f009f
install() {
Tomas Korbar 5f009f
	local required_libs="$(ldd /usr/bin/brltty | awk '{print $1}' | sed 's/\..*/.so\*/g')"
Tomas Korbar 5f009f
Tomas Korbar 5f009f
	for word in $required_libs; do
Tomas Korbar 5f009f
		if [ -e $word ]; then
Tomas Korbar 5f009f
			inst_libdir_file "$word"
Tomas Korbar 5f009f
		fi
Tomas Korbar 5f009f
	done
Tomas Korbar 5f009f
Tomas Korbar 5f009f
	inst_libdir_file "brltty/libbrlttyxlx.so*"
Tomas Korbar 5f009f
Tomas Korbar 5f009f
	local brltty_report="$(LC_ALL="$BRLTTY_LOCALE" brltty -Evel7 2>&1)"
Tomas Korbar 5f009f
	
Tomas Korbar 5f009f
	local checked_braille_drivers=$(echo "$brltty_report" | grep "checking for braille driver:" | awk '{print $NF}')
Tomas Korbar 5f009f
Tomas Korbar 5f009f
	for word in $checked_braille_drivers; do
Tomas Korbar 5f009f
		inst_libdir_file "brltty/libbrlttyb$word.so*"
Tomas Korbar 5f009f
	done
Tomas Korbar 5f009f
Tomas Korbar 5f009f
	local text_tables=$(echo "$brltty_report" | grep -E "compiling text table|including data file"| awk '{print $NF}')
Tomas Korbar 5f009f
		
Tomas Korbar 5f009f
	for word in $text_tables; do
Tomas Korbar 5f009f
		inst "$word"
Tomas Korbar 5f009f
	done	
Tomas Korbar 5f009f
Tomas Korbar 5f009f
	local attributes=$(echo "$brltty_report" | grep "Attributes Table" | awk '{print $NF}')	
Tomas Korbar 5f009f
Tomas Korbar 5f009f
	for word in $attributes; do
Tomas Korbar 5f009f
		inst "/etc/brltty/Attributes/$word.atb"
Tomas Korbar 5f009f
	done
Tomas Korbar 5f009f
Tomas Korbar 5f009f
	if [ "$BRLTTY_DRACUT_INCLUDE_DRIVERS" ]; then
Tomas Korbar 5f009f
		for word in $BRLTTY_DRACUT_INCLUDE_DRIVERS; do
Jaroslav Škarvada 18d268
			inst_libdir_file "brltty/libbrltty$word.so*"
Tomas Korbar 5f009f
		done
Tomas Korbar 5f009f
	fi
Tomas Korbar 5f009f
		
Tomas Korbar 5f009f
	if [ "$BRLTTY_DRACUT_INCLUDE_TEXT_FILES" ]; then
Tomas Korbar 5f009f
		for word in $BRLTTY_DRACUT_INCLUDE_TEXT_FILES; do
Jaroslav Škarvada 18d268
			inst "/etc/brltty/Text/$word"
Tomas Korbar 5f009f
		done
Tomas Korbar 5f009f
	fi
Tomas Korbar 5f009f
Tomas Korbar 5f009f
	inst_hook cmdline 99 "$moddir/parse-brltty-opts.sh"
Tomas Korbar 5f009f
	inst_hook initqueue 99 "$moddir/brltty-start.sh"
Tomas Korbar 5f009f
	inst_hook cleanup 99 "$moddir/brltty-cleanup.sh"
Tomas Korbar 5f009f
Tomas Korbar 5f009f
	inst_simple "/etc/brltty.conf"
Tomas Korbar 5f009f
	inst_simple "/usr/bin/brltty"
Tomas Korbar 5f009f
Tomas Korbar 5f009f
	dracut_need_initqueue
Tomas Korbar 5f009f
}