List:Commits« Previous MessageNext Message »
From:paul Date:December 11 2006 9:38pm
Subject:svn commit - mysqldoc@docsrva: r4212 - in trunk: . tools
View as plain text  
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: . toolspaul11 Dec