diff options
author | Louie Shprung <lshprung@scu.edu> | 2022-11-21 17:50:01 -0800 |
---|---|---|
committer | Louie Shprung <lshprung@scu.edu> | 2022-11-21 17:50:01 -0800 |
commit | fd69ee62aba50908a3aee851ec16753cbd99e48d (patch) | |
tree | d767b5eaf5c533e783b7ad8aff39a32b412807b3 /src | |
parent | e0110a2b0ba0a0a13e78bc9e453110f16d40087b (diff) |
Rough type filtering (builtins, macros)
Diffstat (limited to 'src')
-rwxr-xr-x | src/index.rb | 15 |
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(/&/, '&').gsub(/'/, "\\'").gsub(/</, '<') 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 |