Skip to content

Commit acca4fb

Browse files
committed
Fix some unbound variables and other small issues in training shell scripts
Fix also the logging helper functions to work without log file. Signed-off-by: Stefan Weil <sw@weilnetz.de>
1 parent a4b03fb commit acca4fb

File tree

2 files changed

+32
-23
lines changed

2 files changed

+32
-23
lines changed

src/training/language-specific.sh

+4-3
Original file line numberDiff line numberDiff line change
@@ -603,7 +603,7 @@ BURMESE_FONTS=( \
603603
"Padauk" \
604604
"TharLon" \
605605
)
606-
606+
607607
JAVANESE_FONTS=( \
608608
"Prada" \
609609
)
@@ -909,7 +909,8 @@ set_lang_specific_parameters() {
909909
# Language to mix with the language for maximum accuracy. Defaults to eng.
910910
# If no language is good, set to the base language.
911911
MIX_LANG="eng"
912-
FONTS=
912+
EXPOSURES=${EXPOSURES:-}
913+
FONTS=${FONTS:-}
913914

914915
case ${lang} in
915916
# Latin languages.
@@ -1176,7 +1177,7 @@ set_lang_specific_parameters() {
11761177
test -z "$FONTS" && FONTS=( "${LATIN_FONTS[@]}" )
11771178

11781179
# Default to 0 exposure if it hasn't been set
1179-
test -z "${EXPOSURES:-}" && EXPOSURES=0
1180+
test -z "$EXPOSURES" && EXPOSURES=0
11801181
# Set right-to-left and normalization mode.
11811182
case "${LANG_CODE}" in
11821183
ara | div| fas | pus | snd | syr | uig | urd | kur_ara | heb | yid )

src/training/tesstrain_utils.sh

+28-20
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,19 @@ TESSDATA_PREFIX=${TESSDATA_PREFIX:-}
4747

4848
# Logging helper functions.
4949
tlog() {
50-
echo -e $* 2>&1 1>&2 | tee -a ${LOG_FILE}
50+
if test -z "${LOG_FILE:-}"; then
51+
echo -e $*
52+
else
53+
echo -e $* | tee -a ${LOG_FILE}
54+
fi
5155
}
5256

5357
err_exit() {
54-
echo -e "ERROR: "$* 2>&1 1>&2 | tee -a ${LOG_FILE}
58+
if test -z "${LOG_FILE:-}"; then
59+
echo -e "ERROR: "$*
60+
else
61+
echo -e "ERROR: "$* | tee -a ${LOG_FILE}
62+
fi
5563
exit 1
5664
}
5765

@@ -95,8 +103,8 @@ check_file_readable() {
95103
# if it looks like a flag.
96104
# Usage: parse_value VAR_NAME VALUE
97105
parse_value() {
98-
local val="$2"
99-
if [[ -z $val ]]; then
106+
local val="${2:-}"
107+
if [[ -z "$val" ]]; then
100108
err_exit "Missing value for variable $1"
101109
exit
102110
fi
@@ -137,19 +145,19 @@ parse_flags() {
137145
parse_value "EXPOSURES" "$exp"
138146
i=$((j-1)) ;;
139147
--fonts_dir)
140-
parse_value "FONTS_DIR" ${ARGV[$j]}
148+
parse_value "FONTS_DIR" ${ARGV[$j]:-}
141149
i=$j ;;
142150
--lang)
143-
parse_value "LANG_CODE" ${ARGV[$j]}
151+
parse_value "LANG_CODE" ${ARGV[$j]:-}
144152
i=$j ;;
145153
--langdata_dir)
146-
parse_value "LANGDATA_ROOT" ${ARGV[$j]}
154+
parse_value "LANGDATA_ROOT" ${ARGV[$j]:-}
147155
i=$j ;;
148156
--maxpages)
149-
parse_value "MAX_PAGES" ${ARGV[$j]}
157+
parse_value "MAX_PAGES" ${ARGV[$j]:-}
150158
i=$j ;;
151159
--output_dir)
152-
parse_value "OUTPUT_DIR" ${ARGV[$j]}
160+
parse_value "OUTPUT_DIR" ${ARGV[$j]:-}
153161
i=$j ;;
154162
--overwrite)
155163
OVERWRITE=1 ;;
@@ -162,18 +170,18 @@ parse_flags() {
162170
--noextract_font_properties)
163171
EXTRACT_FONT_PROPERTIES=0 ;;
164172
--tessdata_dir)
165-
parse_value "TESSDATA_DIR" ${ARGV[$j]}
173+
parse_value "TESSDATA_DIR" ${ARGV[$j]:-}
166174
i=$j ;;
167175
--training_text)
168-
parse_value "TRAINING_TEXT" "${ARGV[$j]}"
176+
parse_value "TRAINING_TEXT" "${ARGV[$j]:-}"
169177
i=$j ;;
170178
--wordlist)
171-
parse_value "WORDLIST_FILE" ${ARGV[$j]}
179+
parse_value "WORDLIST_FILE" ${ARGV[$j]:-}
172180
i=$j ;;
173181
--workspace_dir)
174182
rmdir "$FONT_CONFIG_CACHE"
175183
rmdir "$WORKSPACE_DIR"
176-
parse_value "WORKSPACE_DIR" ${ARGV[$j]}
184+
parse_value "WORKSPACE_DIR" ${ARGV[$j]:-}
177185
FONT_CONFIG_CACHE=$WORKSPACE_DIR/fc-cache
178186
mkdir -p $FONT_CONFIG_CACHE
179187
i=$j ;;
@@ -182,13 +190,13 @@ parse_flags() {
182190
esac
183191
i=$((i+1))
184192
done
185-
if [[ -z ${LANG_CODE} ]]; then
193+
if [[ -z ${LANG_CODE:-} ]]; then
186194
err_exit "Need to specify a language --lang"
187195
fi
188-
if [[ -z ${LANGDATA_ROOT} ]]; then
196+
if [[ -z ${LANGDATA_ROOT:-} ]]; then
189197
err_exit "Need to specify path to language files --langdata_dir"
190198
fi
191-
if [[ -z ${TESSDATA_DIR} ]]; then
199+
if [[ -z ${TESSDATA_DIR:-} ]]; then
192200
if [[ -z ${TESSDATA_PREFIX} ]]; then
193201
err_exit "Need to specify a --tessdata_dir or have a "\
194202
"TESSDATA_PREFIX variable defined in your environment"
@@ -267,13 +275,13 @@ generate_font_image() {
267275

268276
# Phase I : Generate (I)mages from training text for each font.
269277
phase_I_generate_image() {
270-
local par_factor=$1
278+
local par_factor=${1:-}
271279
if [[ -z ${par_factor} || ${par_factor} -le 0 ]]; then
272280
par_factor=1
273281
fi
274282
tlog "\n=== Phase I: Generating training images ==="
275-
if [[ -z ${TRAINING_TEXT} ]] || [[ ! -r ${TRAINING_TEXT} ]]; then
276-
err_exit "Could not find training text file ${TRAINING_TEXT}"
283+
if [[ -z ${TRAINING_TEXT:-} ]] || test ! -r "${TRAINING_TEXT}"; then
284+
err_exit "Could not find training text file ${TRAINING_TEXT:-}"
277285
fi
278286
CHAR_SPACING="0.0"
279287

@@ -545,7 +553,7 @@ make__lstmdata() {
545553
--puncs "${lang_prefix}.punc" \
546554
--output_dir "${OUTPUT_DIR}" --lang "${LANG_CODE}" \
547555
"${pass_through}" "${lang_is_rtl}"
548-
556+
549557
if ((SAVE_BOX_TIFF)); then
550558
tlog "\n=== Saving box/tiff pairs for training data ==="
551559
for f in "${TRAINING_DIR}/${LANG_CODE}".*.box; do

0 commit comments

Comments
 (0)