|
Packit |
46375d |
#!/bin/sh
|
|
Packit |
46375d |
# Process fc query output to collect font file data
|
|
Packit |
46375d |
|
|
Packit |
46375d |
# font file to examine
|
|
Packit |
46375d |
font_file="$1"
|
|
Packit |
46375d |
# Where to save fc-query data
|
|
Packit |
46375d |
fc_file="$2"
|
|
Packit |
46375d |
|
|
Packit |
46375d |
# FIXME: only extracts info about the first typeface in a TTC file for now
|
|
Packit |
46375d |
parse_localized_fc_query() {
|
|
Packit |
46375d |
field="$1"
|
|
Packit |
46375d |
file="$2"
|
|
Packit |
46375d |
fieldstring=$(awk -F ':' -v field="$field" \
|
|
Packit |
46375d |
'$1 == "\t"field { print $2 ; exit }' "$file" \
|
|
Packit |
46375d |
| sed 's="(s)="=g' | sed 's=" *"=|=g'| sed 's= *" *==g')"|"
|
|
Packit |
46375d |
default=$(echo $fieldstring | awk -F "|" '{ print $1 }')
|
|
Packit |
46375d |
if $(grep -q "^"$'\t'$field"lang:" "$file") ; then
|
|
Packit |
46375d |
langstring=$(awk -F ':' -v field="$field" \
|
|
Packit |
46375d |
'$1 == "\t"field"lang" { print $2 ; exit }' "$file" \
|
|
Packit |
46375d |
| sed 's="(s)="=g' | sed 's=" *"=|=g'| sed 's= *" *==g')"|"
|
|
Packit |
46375d |
# Try to find the English label
|
|
Packit |
46375d |
while [ "$langstring" != "" -a \
|
|
Packit |
46375d |
"$(echo $langstring | cut -d '|' -f 1)" != "en" ] ; do
|
|
Packit |
46375d |
fieldstring=$(echo "$fieldstring" | sed 's+\([^|]*\)|\(.*\)+\2+g')
|
|
Packit |
46375d |
langstring=$(echo "$langstring" | sed 's+\([^|]*\)|\(.*\)+\2+g')
|
|
Packit |
46375d |
done
|
|
Packit |
46375d |
# We could hide problems by reporting the first label regardless of its
|
|
Packit |
46375d |
# language. But this is an audit script — we do not hide problems
|
|
Packit |
46375d |
echo "$fieldstring" | awk -F "|" '{ print $1 }'
|
|
Packit |
46375d |
else
|
|
Packit |
46375d |
echo $(echo $fieldstring | cut -d '|' -f 1)
|
|
Packit |
46375d |
fi
|
|
Packit |
46375d |
}
|
|
Packit |
46375d |
|
|
Packit |
46375d |
if $(FC_DEBUG=256 fc-query "$font_file" 2> /dev/null > "$fc_file") ; then
|
|
Packit |
46375d |
family=$(parse_localized_fc_query family "$fc_file")
|
|
Packit |
46375d |
style=$(parse_localized_fc_query style "$fc_file")
|
|
Packit |
46375d |
format=$(parse_localized_fc_query fontformat "$fc_file")
|
|
Packit |
46375d |
else
|
|
Packit |
46375d |
touch "$fc_file"
|
|
Packit |
46375d |
fi
|
|
Packit |
46375d |
|
|
Packit |
46375d |
|
|
Packit |
46375d |
echo "$family|$style|$format"
|