Przeglądaj źródła

Add support for tags, e. g. "bug1234"

Alois Mahdal 10 lat temu
rodzic
commit
bd9504e4d2
1 zmienionych plików z 25 dodań i 4 usunięć
  1. 25
    4
      src/ffoo/saturnin_www.sh

+ 25
- 4
src/ffoo/saturnin_www.sh Wyświetl plik

30
 }
30
 }
31
 
31
 
32
 
32
 
33
+filter_tags() {
34
+    #
35
+    # Hack "tags" like bug123 out of the text
36
+    #
37
+    tr ' ' '\n' \
38
+      | grep -E '^[a-zA-Z]+[0-9]+$' \
39
+      | debug_pipe tag_lookalikes
40
+}
41
+
42
+
33
 filter_kws() {
43
 filter_kws() {
34
     #
44
     #
35
     # Hack out lines that look like kw expressions
45
     # Hack out lines that look like kw expressions
57
     # Scan stdin for what looks like URI, ID or keyword
67
     # Scan stdin for what looks like URI, ID or keyword
58
     #
68
     #
59
     # Output URIs: first what were apparent uris, then IDs converted to
69
     # Output URIs: first what were apparent uris, then IDs converted to
60
-    # URIs, then equal sign expressions, then things that looked like
70
+    # URIs, then equal sign expressions, then "tags" like bug1234 (i.e.
71
+    # letters+nubmbers, no spaces), then things that looked like
61
     # kw expressions, converted to URIs.
72
     # kw expressions, converted to URIs.
62
     #
73
     #
63
     # Note that kw expressions (e.g. "bug 123") work only if they start
74
     # Note that kw expressions (e.g. "bug 123") work only if they start
71
         ##
82
         ##
72
         # heat up and fill pipes
83
         # heat up and fill pipes
73
         #
84
         #
74
-        mkfifo maybe_uris maybe_ids maybe_exprs maybe_kws \
75
-               uris uris_from_ids uris_from_exprs uris_from_kws
76
-        cat | tee maybe_uris maybe_ids maybe_exprs maybe_kws >/dev/null &
85
+        mkfifo maybe_uris maybe_ids maybe_exprs maybe_tags maybe_kws \
86
+               uris uris_from_ids uris_from_exprs uris_from_tags uris_from_kws
87
+        cat | tee maybe_uris maybe_ids maybe_exprs maybe_tags maybe_kws >/dev/null &
77
         ##
88
         ##
78
         # process each pipe *async* by different filter
89
         # process each pipe *async* by different filter
79
         #
90
         #
80
         < maybe_uris  filter_uris                     > uris &
91
         < maybe_uris  filter_uris                     > uris &
81
         < maybe_ids   filter_ids   | id2kw   | kw2uri > uris_from_ids &
92
         < maybe_ids   filter_ids   | id2kw   | kw2uri > uris_from_ids &
82
         < maybe_exprs filter_exprs | expr2kw | kw2uri > uris_from_exprs &
93
         < maybe_exprs filter_exprs | expr2kw | kw2uri > uris_from_exprs &
94
+        < maybe_tags  filter_tags  | tag2kw  | kw2uri > uris_from_tags &
83
         < maybe_kws   filter_kws   |           kw2uri > uris_from_kws &
95
         < maybe_kws   filter_kws   |           kw2uri > uris_from_kws &
84
         ##
96
         ##
85
         # print result *sync* in correct order
97
         # print result *sync* in correct order
88
             cat uris
100
             cat uris
89
             cat uris_from_ids
101
             cat uris_from_ids
90
             cat uris_from_exprs
102
             cat uris_from_exprs
103
+            cat uris_from_tags
91
             cat uris_from_kws
104
             cat uris_from_kws
92
         } | grep .  # throw away empties; add missing LF
105
         } | grep .  # throw away empties; add missing LF
93
     popd >&/dev/null
106
     popd >&/dev/null
103
 }
116
 }
104
 
117
 
105
 
118
 
119
+tag2kw() {
120
+    #
121
+    # Convert tag to kw expression
122
+    #
123
+    sed -r 's/([a-zA-Z]+)([0-9])/\1 \2/'
124
+}
125
+
126
+
106
 expr2kw() {
127
 expr2kw() {
107
     #
128
     #
108
     # Convert equal sign expression to kw expression
129
     # Convert equal sign expression to kw expression