summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLouie Shprung <lshprung@scu.edu>2022-11-21 17:50:01 -0800
committerLouie Shprung <lshprung@scu.edu>2022-11-21 17:50:01 -0800
commitfd69ee62aba50908a3aee851ec16753cbd99e48d (patch)
treed767b5eaf5c533e783b7ad8aff39a32b412807b3
parente0110a2b0ba0a0a13e78bc9e453110f16d40087b (diff)
Rough type filtering (builtins, macros)
-rwxr-xr-xsrc/index.rb15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/index.rb b/src/index.rb
index 3dc8468..81b042a 100755
--- a/src/index.rb
+++ b/src/index.rb
@@ -11,15 +11,28 @@ INSERT_SQL = %Q[
PATTERN = %r[<title>(.*)\(Autoconf\)(.*)</title>]
+BUILTIN_PATTERN = /The node you are looking for is at.*Limitations-of-.*\.html/
+MACRO_PATTERN = /The node you are looking for is at/
+
def quote(s)
s.gsub(/&amp;/, '&').gsub(/'/, "\\'").gsub(/&lt;/, '<')
end
ARGV.each do |arg|
Pathname.glob(arg) do |path|
+ macro_match = path.each_line.lazy.map { |line| MACRO_PATTERN.match(line) }.find { |m| m }
+ builtin_match = path.each_line.lazy.map { |line| BUILTIN_PATTERN.match(line) }.find { |m| m }
+ if builtin_match
+ type = "Builtin"
+ elsif macro_match
+ type = "Macro"
+ else
+ type = "Guide"
+ end
+
match = path.each_line.lazy.map { |line| PATTERN.match(line) }.find { |m| m }
if match
- printf INSERT_SQL, quote(match[1]), 'Guide', path.basename
+ printf INSERT_SQL, quote(match[1]), type, path.basename
else
$stderr.puts "%{path.basename}: no title found"
end