Author: paul
Date: 2006-12-11 21:38:15 +0100 (Mon, 11 Dec 2006)
New Revision: 4212
Log:
r17001@polar: paul | 2006-12-11 14:36:42 -0600
Put language-translation machinery in place.
Does only english currently, translations welcome. :-)
Modified:
trunk/tools/list-new-reserved-words.rb
Property changes on: trunk
___________________________________________________________________
Name: svk:merge
- 4767c598-dc10-0410-bea0-d01b485662eb:/mysqldoc-local/mysqldoc/trunk:16997
7d8d2c4e-af1d-0410-ab9f-b038ce55645b:/mysqldoc-local/mysqldoc:13416
b5ec3a16-e900-0410-9ad2-d183a3acac99:/mysqldoc-local/mysqldoc/trunk:14218
bf112a9c-6c03-0410-a055-ad865cd57414:/mysqldoc-local/mysqldoc/trunk:12760
+ 4767c598-dc10-0410-bea0-d01b485662eb:/mysqldoc-local/mysqldoc/trunk:17001
7d8d2c4e-af1d-0410-ab9f-b038ce55645b:/mysqldoc-local/mysqldoc:13416
b5ec3a16-e900-0410-9ad2-d183a3acac99:/mysqldoc-local/mysqldoc/trunk:14218
bf112a9c-6c03-0410-a055-ad865cd57414:/mysqldoc-local/mysqldoc/trunk:12760
Modified: trunk/tools/list-new-reserved-words.rb
===================================================================
--- trunk/tools/list-new-reserved-words.rb 2006-12-11 17:23:35 UTC (rev 4211)
+++ trunk/tools/list-new-reserved-words.rb 2006-12-11 20:38:15 UTC (rev 4212)
Changed blocks: 4, Lines Added: 76, Lines Deleted: 21; 3427 bytes
@@ -2,15 +2,8 @@
# list-new-reserved-words.rb - Generate list of reserved words that
# are new in a given MySQL series.
-# Usage: list-new-reserved-words.rb series prev-series-words cur-series-words
+# Usage: list-new-reserved-words.rb options prev-series-words cur-series-words
-# series = MySQL series number
-# prev-series-words = reserved word list for previous series
-# cur-series-words = reserved word list for current series
-
-# Example:
-# Usage: list-new-reserved-words.rb 5.1 /tmp/rw-new-5.0 /tmp/rw-new-5.1
-
# The script reads the lists, removes from the second those that are
# also present in the first, and formats the result as an XML text file.
@@ -18,6 +11,8 @@
# paul@stripped
# 2006-12-07
+require "getoptlong"
+
def read_words(file_name)
words = []
File.open(file_name) do |fh|
@@ -28,21 +23,81 @@
words
end
-unless ARGV.length == 3
- $stderr.puts <<EOF
-Usage: #{$0} series prev-series-words cur-series-words
+usage = "Usage: #{$0} [options] wordlist1 wordlist2
-series = MySQL series number
-prev-series-words = reserved word list for previous series
-cur-series-words = reserved word list for current series
+wordlist1 and wordlist2 contain the lists of reserved words
+for the previous and current series of MySQL, one word per
+line.
+Options:
+--help, -h
+ Print this message.
+--language=lang, -L lang
+ Use lang for language of output file text. (default: english)
+--series=x.y, -S x.y
+ MySQL version for which to generate changelist.
+
Example:
-Usage: #{$0} 5.1 /tmp/rw-new-5.0 /tmp/rw-new-5.1
-EOF
- exit 1
+#{$0} --language=english --series=5.1 /tmp/rw-5.0 /tmp/rw-5.1
+"
+
+# Variables corresponding to command-line options.
+help = false
+language = "english"
+series = nil
+
+opts = GetoptLong.new(
+ [ "--help", "-h", GetoptLong::NO_ARGUMENT ],
+ [ "--language", "-L", GetoptLong::REQUIRED_ARGUMENT ],
+ [ "--series", "-S", GetoptLong::REQUIRED_ARGUMENT ]
+)
+
+# iterate through options, extracting whatever values are present;
+# opt will be the long-format option, arg is its value
+opts.each do |opt, arg|
+ case opt
+ when "--help"
+ help = true
+ when "--language"
+ language = arg
+ when "--series"
+ series = arg
+ else
+ die "LOGIC ERROR: unhandled option: #{opt}\n"
+ end
end
-series = ARGV.shift
+if help
+ puts usage
+ exit(0)
+end
+
+if series.nil?
+ puts "--series option is required"
+ puts
+ puts usage
+ exit(1)
+end
+
+if ARGV.size != 2
+ puts "Two wordlist files must be named"
+ puts
+ puts usage
+ exit(1)
+end
+
+text_translations = {
+ "english" =>
+ "The following are new reserved words in MySQL #{series}:"
+}
+
+if text_translations.has_key?(language)
+ text = text_translations[language]
+else
+ $stderr.puts "No translation for #{language} available; using english"
+ text = text_translations["english"]
+end
+
words = (read_words(ARGV[1]) - read_words(ARGV[0])).sort
words.collect! { |w| "<literal>" + w + "</literal>" }
@@ -51,8 +106,8 @@
<!DOCTYPE para PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<para>
-The following are new reserved words in MySQL #{series}:
+#{text}
+#{words.join(",\n")}.
+</para>
EOF
-puts words.join(",\n") + "."
-puts "</para>"
| Thread |
|---|
| • svn commit - mysqldoc@docsrva: r4212 - in trunk: . tools | paul | 11 Dec |