]> git.netwichtig.de Git - user/henk/code/ruby/rbot.git/blobdiff - Rakefile
reaction: fix trigger regex to work with non-alphanumeric start/end.
[user/henk/code/ruby/rbot.git] / Rakefile
index f5b3a1261b267b5a0a484763b05514d8819cfaae..822fe7327fe1f841ca28194470f67118f382bf5b 100644 (file)
--- a/Rakefile
+++ b/Rakefile
@@ -6,7 +6,7 @@ task :default => [:buildext]
 
 spec = Gem::Specification.new do |s|
   s.name = 'rbot'
-  s.version = '0.9.11'
+  s.version = '0.9.15'
   s.summary = <<-EOF
     A modular ruby IRC bot.
   EOF
@@ -42,11 +42,6 @@ end
 def normalize_po(fn)
   content = File.read(fn)
 
-  # replace project-id-version placholder
-  modified = content.sub!(/^("Project-Id-Version: )PACKAGE VERSION(\\n")$/) {
-    "#{$1}rbot#{$2}"
-  }
-
   # sort the messages by file location
   if MSGCAT
     sorted = `#{MSGCAT} --width=79 --sort-by-file #{fn}`
@@ -56,6 +51,11 @@ def normalize_po(fn)
     end
   end
 
+  # replace project-id-version placholder
+  modified |= content.sub!(/^("Project-Id-Version: )PACKAGE VERSION(\\n")$/) {
+    "#{$1}rbot#{$2}"
+  }
+
   if modified
     File.open(fn, 'w') {|f| f.write content}
   end
@@ -107,8 +107,12 @@ task :define_po_rules do
     puts "#{pot_file} => #{po_file}"
     if File.exists? po_file
       sh "#{MSGMERGE} --backup=off --update #{po_file} #{pot_file}"
+    elsif MSGINIT
+      locale = po_file[%r'^po/(.+)/.+\.po$', 1]
+      sh "#{MSGINIT} --locale=#{locale} --no-translator --input=#{pot_file} --output-file=#{po_file}"
     else
-      cp pot_file, po_file
+      warn "#{po_file} is missing and cannot be generated without msginit"
+      next
     end
     normalize_po(po_file)
     touch po_file
@@ -149,6 +153,9 @@ task :check_po_tools do
     'msgmerge' => {
       :options => %w[--backup= --update],
       :message => 'Cannot update po files' },
+    'msginit' => {
+      :options => %w[--locale= --no-translator --input= --output-file=],
+      :message => 'Cannot generate missing po files' },
     'msgcomm' => {
       :options => %w[--unique],
       :message => 'Pot files may be modified even without message change' },
@@ -202,8 +209,7 @@ task :buildext do
 end
 
 desc 'Generate mo files'
-task :makemo => LOCALES.map {|l|
-  ["data/locale/#{l}/LC_MESSAGES/rbot.mo"] +
-  PLUGIN_BASENAMES.map {|n| "data/locale/#{l}/LC_MESSAGES/rbot-#{n}.mo"}
-}.flatten
+task :makemo =>
+  FileList['po/*/*.po'].pathmap('%{^po,data/locale}d/LC_MESSAGES/%n.mo')
+