indexgph2db.sh - gopher-lawn - The gopher lawn gopher directory project. | |
git clone git://bitreich.org/gopher-lawn/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhf… | |
Log | |
Files | |
Refs | |
Tags | |
--- | |
indexgph2db.sh (2011B) | |
--- | |
1 #!/bin/sh | |
2 | |
3 set -x | |
4 | |
5 if [ $# -gt 0 ]; | |
6 then | |
7 inputfile="$1" | |
8 else | |
9 inputfile="/dev/stdin" | |
10 fi | |
11 | |
12 printdbtmpl() { | |
13 linetype="$1" | |
14 linktext="$2" | |
15 selector="$3" | |
16 host="$4" | |
17 port="$5" | |
18 description="$6" | |
19 | |
20 case "${linetype}" in | |
21 0|H) | |
22 linetypetext="text" | |
23 ;; | |
24 1|h|w) | |
25 linetypetext="link" | |
26 ;; | |
27 2) | |
28 linetypetext="cso" | |
29 ;; | |
30 3|+|i) | |
31 linetypetext="error" | |
32 ;; | |
33 6) | |
34 linetypetext="uuencoded" | |
35 ;; | |
36 7) | |
37 linetypetext="search" | |
38 ;; | |
39 8|T) | |
40 linetypetext="telnet" | |
41 ;; | |
42 *) | |
43 linetypetext="binary" | |
44 ;; | |
45 esac | |
46 | |
47 tmplfile="$host-$(printf "%s\n" "${selector}" \ | |
48 | tr '/' '_').${linetypetext}" | |
49 | |
50 printf "Type: %s\n" "${linetypetext}" > "${tmplfile}" | |
51 printf "Selector: %s\n" "${selector}" >> "${tmplfile}" | |
52 printf "Host: %s\n" "${host}" >> "${tmplfile}" | |
53 printf "Port: %s\n" "${port}" >> "${tmplfile}" | |
54 printf "LinkName: %s\n" "${linktext}" >> "${tmplfile}" | |
55 printf "Description: %s\n" "${description}" >> "${tmplfile}" | |
56 printf "Category: \n" >> "${tmplfile}" | |
57 printf "Keywords: \n" >> "${tmplfile}" | |
58 } | |
59 | |
60 gphline="" | |
61 cat "${inputfile}" \ | |
62 | while read -r line; | |
63 do | |
64 if [ -z "${line}" ]; | |
65 then | |
66 if [ -n "${gphline}" ]; | |
67 then | |
68 case "${gphline}" in | |
69 '[1|<< back'*) | |
70 ;; | |
71 *) | |
72 linetype="$(printf "%s\n" "${gphline}" \ | |
73 | cut -d '[' -f 2 | cut -d '|' -… | |
74 linktext="$(printf "%s\n" "${gphline}" \ | |
75 | cut -d '|' -f 2)"; | |
76 selector="$(printf "%s\n" "${gphline}" \ | |
77 | cut -d '|' -f 3)"; | |
78 host="$(printf "%s\n" "${gphline}" \ | |
79 | cut -d '|' -f 4)"; | |
80 port="$(printf "%s\n" "${gphline}" \ | |
81 | cut -d '|' -f 5 | cut -d ']' -… | |
82 | |
83 printdbtmpl "${linetype}" "${linktext}" \ | |
84 "${selector}" "${host}" "${port}… | |
85 "${description}" | |
86 ;; | |
87 esac | |
88 fi | |
89 | |
90 gphline="" | |
91 description="" | |
92 continue; | |
93 fi | |
94 | |
95 case "${line}" in | |
96 \[*) | |
97 if [ -z "${gphline}" ]; | |
98 then | |
99 gphline="${line}" | |
100 continue; | |
101 fi | |
102 ;; | |
103 *) | |
104 if [ -n "${gphline}" ]; | |
105 then | |
106 if [ -z "${description}" ]; | |
107 then | |
108 description="${line}" | |
109 else | |
110 description="${description} ${line}" | |
111 fi | |
112 fi | |
113 continue; | |
114 ;; | |
115 esac | |
116 done | |
117 |