1 |
--- wvText.in |
2 |
+++ wvText.in |
3 |
@@ -3,24 +3,50 @@ |
4 |
prefix=@prefix@ |
5 |
exec_prefix=@exec_prefix@ |
6 |
datadir=@datadir@ |
7 |
-tmpdir=/tmp |
8 |
+tmpdir=$(mktemp -d /tmp/wvText.XXXXXXXX) || { echo "$0: can not create temporary directory" >& 2; exit 1; } |
9 |
+i_file= |
10 |
+o_file= |
11 |
|
12 |
# argument checking |
13 |
-if [ ${#} -ne "2" ]; then |
14 |
- echo "Usage: ${0} <word document> <text output file>" |
15 |
+ |
16 |
+case ${#} in |
17 |
+ 1) |
18 |
+ i_file=${1} |
19 |
+ o_file=- |
20 |
+ ;; |
21 |
+ 2) |
22 |
+ i_file=${1} |
23 |
+ o_file=${2} |
24 |
+ ;; |
25 |
+ *) |
26 |
+ echo "Usage: `basename ${0}` <word document> [<text output file>]" |
27 |
exit 1 |
28 |
-fi |
29 |
+ ;; |
30 |
+esac |
31 |
|
32 |
# start out optimistic |
33 |
-USING_LYNX=1 |
34 |
-which lynx >/dev/null 2>&1 |
35 |
-if [ ${?} -ne "0" ]; then |
36 |
- echo "Could not find required program 'lynx'" |
37 |
- echo "Not using lynx. Ouput will be pretty bad." |
38 |
- USING_LYNX=0 |
39 |
-fi |
40 |
+USING_BROWSER=1 |
41 |
+BROWSER_CMD="w3m -dump -T text/html" |
42 |
+browser=none |
43 |
+ |
44 |
+which lynx >& /dev/null && browser=lynx |
45 |
+which w3m >& /dev/null && browser=w3m |
46 |
+ |
47 |
+case $browser in |
48 |
+ w3m) |
49 |
+ BROWSER_CMD="w3m -dump -T text/html" |
50 |
+ ;; |
51 |
+ lynx) |
52 |
+ BROWSER_CMD="lynx -dump -force_html" |
53 |
+ ;; |
54 |
+ *) |
55 |
+ echo "Neither w3m nor lynx found" |
56 |
+ echo "Output will be pretty bad." |
57 |
+ USING_BROWSER=0 |
58 |
+ ;; |
59 |
+esac |
60 |
|
61 |
-if [ ${USING_LYNX} -ne "0" ]; then |
62 |
+if [ ${USING_BROWSER} -ne "0" ]; then |
63 |
|
64 |
# first, test for wvHtml |
65 |
which wvHtml >/dev/null 2>&1 |
66 |
@@ -32,25 +58,34 @@ |
67 |
# intermediate file |
68 |
TMP_FILE="wv$$.html" |
69 |
|
70 |
- wvHtml "${1}" --targetdir="${tmpdir}" "${TMP_FILE}" >/dev/null 2>&1 |
71 |
+ wvHtml "$i_file" --targetdir="${tmpdir}" "${TMP_FILE}" >/dev/null 2>&1 |
72 |
if [ ${?} -ne "0" ]; then |
73 |
- echo "Could not convert into HTML" |
74 |
+ echo "Could not convert $i_file into HTML" |
75 |
exit 1 |
76 |
fi |
77 |
|
78 |
# lynx actually does quite well |
79 |
- TERM=vt100 lynx -dump -force_html "${tmpdir}/${TMP_FILE}" > "${2}" |
80 |
+ # Output to stdout requested |
81 |
+ if test "x$o_file" = "x-"; then |
82 |
+ TERM=vt100 ${BROWSER_CMD} "${tmpdir}/${TMP_FILE}" |
83 |
+ else |
84 |
+ TERM=vt100 ${BROWSER_CMD} "${tmpdir}/${TMP_FILE}" > "$o_file" |
85 |
+ fi |
86 |
if [ ${?} -ne "0" ]; then |
87 |
- echo "Could not convert into Text" |
88 |
+ echo "Could not convert $i_file into Text" |
89 |
exit 1 |
90 |
fi |
91 |
|
92 |
# clean up |
93 |
- rm -f "${tmpdir}/${TMP_FILE}" |
94 |
+ rm -rf "${tmpdir}" |
95 |
|
96 |
else |
97 |
# fall back onto our cruddy output |
98 |
# this is, admittedly, better than running |
99 |
# 'strings' on the word document though :) |
100 |
- wvWare -x ${datadir}/wv/wvText.xml "${1}" > "${2}" |
101 |
+ if test "x$o_file" = "x-"; then |
102 |
+ wvWare -x ${datadir}/wv/wvText.xml "$i_file" |
103 |
+ else |
104 |
+ wvWare -x ${datadir}/wv/wvText.xml "$i_file" > "$o_file" |
105 |
+ fi |
106 |
fi |
107 |
|