Skip to content

Commit f4218da

Browse files
authored
code in the document update script is divided into functions (#29)
1 parent 896f653 commit f4218da

File tree

1 file changed

+110
-79
lines changed

1 file changed

+110
-79
lines changed

scripts/update_doc.sh

Lines changed: 110 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ CHECK_WARNINGS=true
44

55
if [ $# -lt 1 ]; then
66
echo "[INFO] Target directory is not specified. Used \"MeshLib/local\""
7+
CHECK_WARNINGS=false
78
fi
89

910
MODULES=(Main Cpp Py C Csharp)
@@ -14,94 +15,124 @@ fi
1415
# Use "MeshLib/local" as default if $1 is not provided
1516
TARGET_DIR="${1:-MeshLib/local}"
1617

17-
#preparing files
18-
bash ./scripts/pre.sh "$TARGET_DIR"
19-
if [ $? -ne 0 ]; then
20-
echo "[ERROR] Problem in preparing files. Abort operation."
21-
exit 1
22-
fi
2318

24-
# create output directory
25-
mkdir -p ${TARGET_DIR}/html
26-
# clear output directory
27-
rm -rf ${TARGET_DIR}/html/*
19+
prepare_setting_files() {
20+
echo "1.prepare_setting_files"
21+
bash ./scripts/pre.sh "$TARGET_DIR"
22+
if [ $? -ne 0 ]; then
23+
echo "[ERROR] Problem in preparing files. Abort operation."
24+
return 1
25+
fi
26+
}
27+
2828

29-
if [ "$CHECK_WARNINGS" = false ]; then
29+
prepare_output_directory() {
30+
echo "2.prepare_output_directory"
31+
mkdir -p ${TARGET_DIR}/html
32+
# clear output directory
33+
rm -rf ${TARGET_DIR}/html/*
34+
}
35+
36+
clear_log_files() {
37+
echo "3.clear_log_files"
3038
rm log*.txt
31-
fi
39+
}
3240

33-
# generate tag files
34-
for MODULE in ${MODULES[*]}
35-
do
36-
cp Doxyfile${MODULE} Doxyfile${MODULE}Tag
37-
echo "" >> Doxyfile${MODULE}Tag
38-
echo "GENERATE_TAGFILE = MeshLib/MeshLib${MODULE}.tag" >> Doxyfile${MODULE}Tag
39-
echo "========== ${MODULE}" >> log_tag.txt
40-
echo "========== ${MODULE}" >> log_tag_error.txt
41-
start=$(date +%s.%N)
42-
doxygen -d time ./Doxyfile${MODULE}Tag 1>> log_tag.txt 2>> log_tag_error.txt
43-
end=$(date +%s.%N)
44-
runtime=$(echo "$end - $start" | bc)
45-
echo "${MODULE} tag $runtime seconds" >> log_time.txt
46-
rm Doxyfile${MODULE}Tag
47-
48-
done
49-
rm -rf ${TARGET_DIR}/html/*
50-
51-
# check doxygen error (bad doxyfile, missing sources)
52-
if [ "$CHECK_WARNINGS" = true ] && grep -q "^warning: " log_tag_error.txt; then
53-
echo "ERROR: documentation generation error"
54-
cat log_tag_error.txt
55-
exit 1
56-
fi
41+
generate_documentation() {
42+
echo "4.generate_documentation"
43+
# generate tag files
44+
for MODULE in ${MODULES[*]}
45+
do
46+
cp Doxyfile${MODULE} Doxyfile${MODULE}Tag
47+
echo "" >> Doxyfile${MODULE}Tag
48+
echo "GENERATE_TAGFILE = MeshLib/MeshLib${MODULE}.tag" >> Doxyfile${MODULE}Tag
49+
echo "========== ${MODULE}" >> log_tag.txt
50+
echo "========== ${MODULE}" >> log_tag_error.txt
51+
start=$(date +%s.%N)
52+
doxygen -d time ./Doxyfile${MODULE}Tag 1>> log_tag.txt 2>> log_tag_error.txt
53+
end=$(date +%s.%N)
54+
runtime=$(echo "$end - $start" | bc)
55+
echo "${MODULE} tag $runtime seconds" >> log_time.txt
56+
rm Doxyfile${MODULE}Tag
57+
58+
done
59+
rm -rf ${TARGET_DIR}/html/*
5760

58-
# final generation of documentation
59-
for MODULE in ${MODULES[*]}
60-
do
61-
cp Doxyfile${MODULE} Doxyfile${MODULE}Tag
62-
DIR=".."
63-
if [ "$MODULE" = "Main" ]; then
64-
DIR="."
61+
# check doxygen error (bad doxyfile, missing sources)
62+
if [ "$CHECK_WARNINGS" = true ] && grep -q "^warning: " log_tag_error.txt; then
63+
cat log_tag_error.txt
64+
echo "ERROR: documentation generation error 1"
65+
return 1
6566
fi
66-
for MODULE_2 in ${MODULES[*]}
67+
68+
# final generation of documentation
69+
for MODULE in ${MODULES[*]}
6770
do
68-
if [ "$MODULE" = "$MODULE_2" ]; then
69-
continue
70-
elif [ "$MODULE_2" = "Main" ]; then
71-
echo "" >> Doxyfile${MODULE}Tag
72-
echo "TAGFILES += MeshLib/MeshLib${MODULE_2}.tag=../" >> Doxyfile${MODULE}Tag
73-
else
74-
echo "" >> Doxyfile${MODULE}Tag
75-
echo "TAGFILES += MeshLib/MeshLib${MODULE_2}.tag=${DIR}/${MODULE_2}/" >> Doxyfile${MODULE}Tag
71+
cp Doxyfile${MODULE} Doxyfile${MODULE}Tag
72+
DIR=".."
73+
if [ "$MODULE" = "Main" ]; then
74+
DIR="."
7675
fi
76+
for MODULE_2 in ${MODULES[*]}
77+
do
78+
if [ "$MODULE" = "$MODULE_2" ]; then
79+
continue
80+
elif [ "$MODULE_2" = "Main" ]; then
81+
echo "" >> Doxyfile${MODULE}Tag
82+
echo "TAGFILES += MeshLib/MeshLib${MODULE_2}.tag=../" >> Doxyfile${MODULE}Tag
83+
else
84+
echo "" >> Doxyfile${MODULE}Tag
85+
echo "TAGFILES += MeshLib/MeshLib${MODULE_2}.tag=${DIR}/${MODULE_2}/" >> Doxyfile${MODULE}Tag
86+
fi
87+
done
88+
if [ "$MODULE" = "Cpp" ]; then
89+
echo "GENERATE_XML = YES" >> Doxyfile${MODULE}Tag
90+
echo "XML_OUTPUT = ./xml" >> Doxyfile${MODULE}Tag
91+
fi
92+
echo "========== ${MODULE}" >> log.txt
93+
echo "========== ${MODULE}" >> log_error.txt
94+
start=$(date +%s.%N)
95+
doxygen -d time ./Doxyfile${MODULE}Tag 1>> log.txt 2>> log_error.txt
96+
end=$(date +%s.%N)
97+
runtime=$(echo "$end - $start" | bc)
98+
echo "${MODULE} $runtime seconds" >> log_time.txt
99+
rm Doxyfile${MODULE}Tag
77100
done
78-
if [ "$MODULE" = "Cpp" ]; then
79-
echo "GENERATE_XML = YES" >> Doxyfile${MODULE}Tag
80-
echo "XML_OUTPUT = ./xml" >> Doxyfile${MODULE}Tag
101+
102+
# check doxygen error (bad doxyfile, missing sources)
103+
if [ "$CHECK_WARNINGS" = true ] && grep -q "^warning: " log_error.txt; then
104+
cat log_error.txt
105+
echo "ERROR: documentation generation error 2"
106+
return 1
81107
fi
82-
echo "========== ${MODULE}" >> log.txt
83-
echo "========== ${MODULE}" >> log_error.txt
84-
start=$(date +%s.%N)
85-
doxygen -d time ./Doxyfile${MODULE}Tag 1>> log.txt 2>> log_error.txt
86-
end=$(date +%s.%N)
87-
runtime=$(echo "$end - $start" | bc)
88-
echo "${MODULE} $runtime seconds" >> log_time.txt
89-
rm Doxyfile${MODULE}Tag
90-
done
91-
92-
# check doxygen error (bad doxyfile, missing sources)
93-
if [ "$CHECK_WARNINGS" = true ] && grep -q "^warning: " log_error.txt; then
94-
echo "ERROR: documentation generation error"
95-
cat log_error.txt
96-
exit 1
97-
fi
108+
}
109+
110+
remove_and_restore_files() {
111+
echo "5.remove_and_restore_files"
112+
# remove tag files
113+
for MODULE in ${MODULES[*]}
114+
do
115+
rm -f MeshLib/MeshLib${MODULE}.tag
116+
done
117+
./scripts/restore_files.sh
118+
}
98119

99-
# remove tag files
100-
for MODULE in ${MODULES[*]}
101-
do
102-
rm -f MeshLib/MeshLib${MODULE}.tag
103-
done
120+
post_processing() {
121+
echo "6.post_processing"
122+
./scripts/update_search.sh "$TARGET_DIR"
123+
./scripts/post.sh "$TARGET_DIR"
124+
}
104125

105-
./scripts/update_search.sh "$TARGET_DIR"
106-
./scripts/restore_files.sh
107-
./scripts/post.sh "$TARGET_DIR"
126+
prepare_setting_files
127+
if [[ $? -ne 0 ]]; then
128+
exit $?
129+
fi
130+
prepare_output_directory
131+
clear_log_files
132+
generate_documentation
133+
exit_code=$?
134+
remove_and_restore_files
135+
if [[ $exit_code -ne 0 ]]; then
136+
exit $exit_code
137+
fi
138+
post_processing

0 commit comments

Comments
 (0)