diff options
author | Dirk Engling <erdgeist@erdgeist.org> | 2014-02-07 20:29:31 +0100 |
---|---|---|
committer | Dirk Engling <erdgeist@erdgeist.org> | 2014-02-07 20:29:31 +0100 |
commit | a62a0a5a509cfaea35740a79dc473da9d0f69c8d (patch) | |
tree | 9fde87cd0506360e71cc57e7819b0ee24af2ef10 | |
parent | 73e3ce99ef6aab6c9c801a38a0902b469c2340f6 (diff) |
Report progress
Remove debug output
Wipe whole working directory clean
-rwxr-xr-x | src/makecolumns.sh | 37 |
1 files changed, 20 insertions, 17 deletions
diff --git a/src/makecolumns.sh b/src/makecolumns.sh index 95c9d08..4ed1f86 100755 --- a/src/makecolumns.sh +++ b/src/makecolumns.sh | |||
@@ -22,6 +22,9 @@ main() { | |||
22 | # Compile all the binaries | 22 | # Compile all the binaries |
23 | make all | 23 | make all |
24 | 24 | ||
25 | printf "Cleaning up old working directory ... " | ||
26 | rm -rf ../work_`basename ${1#white_}` | ||
27 | printf "done.\n" | ||
25 | mkdir -p ../work_`basename ${1#white_}` | 28 | mkdir -p ../work_`basename ${1#white_}` |
26 | cd ../work_`basename ${1#white_}` || exit 1 | 29 | cd ../work_`basename ${1#white_}` || exit 1 |
27 | 30 | ||
@@ -45,14 +48,18 @@ get_dword() { | |||
45 | 48 | ||
46 | do_decompress_old() { | 49 | do_decompress_old() { |
47 | printf "Extracting $2 chunks ... " | 50 | printf "Extracting $2 chunks ... " |
48 | extractblocks "${1}" | grep -v appropriate | 51 | extractblocks "${1}" |
49 | printf "done.\n" | 52 | printf "done.\n" |
50 | 53 | ||
51 | printf "Decompressing $2 chunks ... " | 54 | printf "Decompressing $2 chunks ... " |
55 | number_of_files=`find . -name \*.lha | wc -l` | ||
56 | reported=0; processed=0 | ||
52 | for archive in *.lha; do | 57 | for archive in *.lha; do |
53 | lha x ${archive} > /dev/null | 58 | lha x ${archive} > /dev/null |
54 | rm ${archive} | 59 | rm ${archive} |
60 | [ 1 -eq $(( ( processed++ * 20 ) / number_of_files > reported )) ] && printf "%d%% " $(( ++reported * 5 )) | ||
55 | done | 61 | done |
62 | [ $reported -lt 10 ] && printf "100% " | ||
56 | printf "done.\n" | 63 | printf "done.\n" |
57 | } | 64 | } |
58 | 65 | ||
@@ -74,24 +81,15 @@ do_processfile_old() { | |||
74 | } | 81 | } |
75 | 82 | ||
76 | handle_old_format() { | 83 | handle_old_format() { |
77 | # Clear old files. Be very careful, we could | 84 | # Extract teiln.dat |
78 | # have ended up in an unexpected directory, after all. | 85 | do_decompress_old $1/[Dd][Aa][Tt]/[Tt][Ee][Ii][Ll][Nn].[Dd][Aa][Tt] "teiln.dat" |
79 | printf "Cleaning up old temporary files ... " | ||
80 | find -E . -depth 1 -regex '^\./[0123456789]+' -delete | ||
81 | rm -rf ??_* coords strassen | ||
82 | printf "done.\n" | ||
83 | |||
84 | # If street names come in an extra file, extract | ||
85 | # street names first | ||
86 | streets=$1/[Dd][Aa][Tt]/[Ss][Tt][Rr][Aa][Ss][Ss][Ee][Nn].[Dd][Aa][Tt] | ||
87 | [ -f ${streets} ] && do_processfile_old "${streets}" "street name" 99_Strassenname convert_zeros | ||
88 | |||
89 | # Then extract teiln.dat | ||
90 | do_decompress_old $1/[Dd][Aa][Tt]/[Tt][Ee][Ii][Ll][Nn].[Dd][Aa][Tt] "teiln.dat" | ||
91 | 86 | ||
92 | # See how long each filename is | 87 | # See how long each filename is |
93 | filename_len=$(( `ls | head -n 1 | wc -c` - 1 )) | 88 | filename_len=$(( `ls | head -n 1 | wc -c` - 1 )) |
94 | 89 | ||
90 | # Get total amount of files, for reporting progress | ||
91 | number_of_files=`find -E . -depth 1 -regex '^\./[0123456789]+' | wc -l` | ||
92 | |||
95 | # from 2000F on file 0+3*n is table, so make it default | 93 | # from 2000F on file 0+3*n is table, so make it default |
96 | table_file=`printf %0${filename_len}d 0` | 94 | table_file=`printf %0${filename_len}d 0` |
97 | vname_file=`printf %0${filename_len}d 2` | 95 | vname_file=`printf %0${filename_len}d 2` |
@@ -115,6 +113,7 @@ handle_old_format() { | |||
115 | 113 | ||
116 | # Now loop over all files and dump them | 114 | # Now loop over all files and dump them |
117 | printf "Splitting decompressed chunks into their columns ... " | 115 | printf "Splitting decompressed chunks into their columns ... " |
116 | reported=0 | ||
118 | while [ -f ${nname_file} ]; do | 117 | while [ -f ${nname_file} ]; do |
119 | # Get number of entries in this round | 118 | # Get number of entries in this round |
120 | count=`get_dword ${nname_file}` | 119 | count=`get_dword ${nname_file}` |
@@ -146,8 +145,8 @@ handle_old_format() { | |||
146 | vname_file=`printf "%s + 3\n" ${vname_file} | bc` | 145 | vname_file=`printf "%s + 3\n" ${vname_file} | bc` |
147 | vname_file=`printf %0${filename_len}d ${vname_file}` | 146 | vname_file=`printf %0${filename_len}d ${vname_file}` |
148 | table_file=`printf "%s + 3\n" ${table_file} | bc` | 147 | table_file=`printf "%s + 3\n" ${table_file} | bc` |
148 | [ 1 -eq $(( ( table_file * 20 ) / number_of_files > reported )) ] && printf "%d%% " $(( ++reported * 5 )) | ||
149 | table_file=`printf %0${filename_len}d ${table_file}` | 149 | table_file=`printf %0${filename_len}d ${table_file}` |
150 | |||
151 | done | 150 | done |
152 | printf "done.\n" | 151 | printf "done.\n" |
153 | 152 | ||
@@ -169,6 +168,11 @@ handle_old_format() { | |||
169 | [ -f 14_unknown ] && mv 14_unknown 14_Email | 168 | [ -f 14_unknown ] && mv 14_unknown 14_Email |
170 | [ -f 15_unknown ] && mv 15_unknown 15_Webadresse | 169 | [ -f 15_unknown ] && mv 15_unknown 15_Webadresse |
171 | 170 | ||
171 | # If street names come in an extra file, extract | ||
172 | # street names first | ||
173 | streets=$1/[Dd][Aa][Tt]/[Ss][Tt][Rr][Aa][Ss][Ss][Ee][Nn].[Dd][Aa][Tt] | ||
174 | [ -f ${streets} ] && do_processfile_old "${streets}" "street name" 99_Strassenname convert_zeros | ||
175 | |||
172 | # extract street names if 07_unknown contains street indexes | 176 | # extract street names if 07_unknown contains street indexes |
173 | # instead of street names | 177 | # instead of street names |
174 | if [ -f 99_Strassenname ]; then | 178 | if [ -f 99_Strassenname ]; then |
@@ -181,7 +185,6 @@ handle_old_format() { | |||
181 | fi | 185 | fi |
182 | 186 | ||
183 | karto=$1/[Dd][Aa][Tt]/[Kk][Aa][Rr][Tt][Oo].[Dd][Aa][Tt] | 187 | karto=$1/[Dd][Aa][Tt]/[Kk][Aa][Rr][Tt][Oo].[Dd][Aa][Tt] |
184 | printf "%s\n" $karto | ||
185 | [ -f ${karto} ] && do_processfile_old ${karto} "geo coordinates" 90_Geokoordinaten_hnr | 188 | [ -f ${karto} ] && do_processfile_old ${karto} "geo coordinates" 90_Geokoordinaten_hnr |
186 | } | 189 | } |
187 | 190 | ||