diff options
author | Ralph Amissah <ralph@amissah.com> | 2015-01-12 10:17:45 -0500 |
---|---|---|
committer | Ralph Amissah <ralph@amissah.com> | 2015-01-19 23:46:16 -0500 |
commit | b36588c9f9f5762a8c8e924c6be716a44816b44d (patch) | |
tree | 7e95c31e4cdb98684a9687dffd65e8ec41a5078e /bin/sisu-misc-utils | |
parent | sisu po4a ruby thor Rakefile equivalent (& cosmetic edit to qi) (diff) |
bin/sisu-misc-utils + c&d: lib sisu_thor_lib currently only po4a
* uses po4a to create po files with empty translation strings
* in appropriately configured directory e.g.
"data/doc/sisu/markup-samples/manual" have file named:
"languages_source_and_targets" containing e.g.:
source: en
targets: de fr es ja ru zh
command examples:
ruby ~snx/bin/sisu-misc-utils po4a --next --clean
ruby ~snx/bin/sisu-misc-utils po4a --next --distclean
ruby ~snx/bin/sisu-misc-utils po4a --next --make
Diffstat (limited to 'bin/sisu-misc-utils')
-rw-r--r-- | bin/sisu-misc-utils | 228 |
1 files changed, 228 insertions, 0 deletions
diff --git a/bin/sisu-misc-utils b/bin/sisu-misc-utils new file mode 100644 index 00000000..e5be5c09 --- /dev/null +++ b/bin/sisu-misc-utils @@ -0,0 +1,228 @@ +#!/usr/bin/env ruby +begin + require 'thor' +rescue LoadError + puts 'thor (package ruby-thor) not found' +end +require 'find' +require 'fileutils' + include FileUtils +require 'pathname' +require 'rbconfig.rb' +module SiSUconf + class LanguageCodes + def language_list + def codes + %w[am bg bn br ca cs cy da de el en eo es et eu fi fr ga gl he hi hr hy ia is it ja ko la lo lt lv ml mr nl nn no oc pl pt pt_BR ro ru sa se sk sl sq sr sv ta te th tk tr uk ur us vi zh] + end + def regex + codes.join('|') + end + self + end + end + class DetermineLibsPath + def version + def stable + '5' + end + def unstable + '6' + end + self + end + def processing + def called_as + $0 + #$called_as + end + def called_as_exe + File.basename(called_as) + end + def called_as_exe_strip_current_develop + File.basename(called_as).gsub(/-(?:current|develop)/,'') + end + def argv + $* + #$argv + end + def argv_str + argv.inspect + end + def file_full_path + __FILE__ + end + def current + 'current' + end + def next + 'develop' + end + def stable_bin_file_regex + %r{\bsisu#{version.stable}$} + end + def unstable_bin_file_regex + %r{\bsisu#{version.unstable}$} + end + def stable_modifier_regex + %r{"(?:--v#{version.stable}|--current|--stable)"} + end + def unstable_modifier_regex + %r{"(?:--v#{version.unstable}|--next|--unstable)"} + end + def lib_filename + 'sisu_thor_lib' + end + self + end + def sisu_run_from? + if processing.called_as == processing.file_full_path \ + and File.dirname(processing.file_full_path) != RbConfig::CONFIG['bindir'] + :full_path_to_sisu_bin_in_sisu_dir_tree + elsif processing.file_full_path =~/\/gems\// \ + and processing.file_full_path \ + =~ /\/#{called_as_exe_strip_current_develop}(?:-(?:current|develop))\.(?:\d+|[a-z])\.(?:\d+|[a-z])\// + :gem_install + else + :system_install + end + end + def branch_name_ + if sisu_run_from? == :full_path_to_sisu_bin_in_sisu_dir_tree \ + or sisu_run_from? == :system_install + case processing.called_as + when processing.stable_bin_file_regex then processing.current + when processing.unstable_bin_file_regex then processing.next + else + case processing.argv_str + when processing.stable_modifier_regex then processing.current + when processing.unstable_modifier_regex then processing.next + else processing.current + end + end + elsif sisu_run_from? == :gem_install + case processing.file_full_path + when processing.stable_gem_regex then processing.current + when processing.unstable_gem_regex then processing.next + else processing.current + end + else processing.current + end + end + def sisu_path_specified_lib + if (processing.called_as \ + !~ /^#{RbConfig::CONFIG['bindir']}\/#{called_as_exe_strip_current_develop}(?:-(?:current|develop))?$/) + File.expand_path(processing.called_as). + sub(/bin\/#{called_as_exe_strip_current_develop}(?:-(?:current|develop))?$/,'lib') + else nil + end + end + def sisu_lib + "sisu/#{branch_name_}" + end + def sisu_path_lib + if sisu_path_specified_lib \ + && FileTest.file?("#{sisu_path_specified_lib}/#{sisu_lib}/#{lib_filename}.rb") + "#{sisu_path_specified_lib}/#{sisu_lib}" + else sisu_lib + end + end + end + class Configure < Thor + $SiSU_Language_Codes=LanguageCodes.new + lib_filename='sisu_thor_lib' + #p "#{DetermineLibsPath.new.sisu_path_lib}/#{lib_filename}" + require "#{DetermineLibsPath.new.sisu_path_lib}/#{lib_filename}" # sisu_thor_lib.rb + @@source=@@targets=nil + include SiSU_Po4a_Actions + class_option :verbose, :type => :boolean +# rake help clean default distclean make manpage readme rebuild + desc 'po4a', + 'place SiSU translations under po4a management' \ + + 'assist with having sisu markup files managed by po4a' \ + + 'create configuration files, and language directories and' \ + + 'populate them with po4a pot & po files for translation and' \ + + 'from those (as translated) create translated sisu markup' \ + + '.ssm .sst & .ssi files in corresponding language sub-directories' \ + + '*WARNING* creates, destroys, overwrites directories not managed by po4a' + options \ + :help => :boolean, + :clean => :boolean, + #:default => :boolean, + :distclean => :boolean, + :make => :boolean, + :lang_source => :string, + :lang_targets => :array, + :manpage => :boolean, + :readme => :boolean, + :rebuild => :boolean, + :current => :string, + :next => :string, + :stable => :string, + :unstable => :string + def po4a + @@source=source=if options[:lang_source] \ + and not options[:lang_source].empty? + options[:lang_source] + else nil + end + @@targets=targets=if options[:lang_targets] + options[:lang_targets] + else nil + end + language.translation_languages_selected(targets) + language.source_language_selected(source) + if options[:help] + notice.project_help + end + if options[:clean] + notice.default(:clean) + project.clean + end + #if options[:default] + # notice.project_help + #end + if options[:distclean] + notice.default(:distclean) + project.distclean + end + if options[:make] + notice.default(:make) + project.make + end + if options[:manpage] + generate.manpage + end + if options[:readme] + generate.readme + end + if options[:rebuild] + notice.default(:rebuild) + project.distclean + project.make + end + end + end +end +begin + require 'rbconfig' + $called_as,$argv=$0,$* + SiSUconf::Configure.start(ARGV) +rescue +end +__END__ + +** Description: + +** Homepage: <http://www.jus.uio.no/sisu/SiSU> + <http://search.sisudoc.org> +** Download: <http://www.jus.uio.no/sisu/download> + +** Copyright: (C) 2007 - 2015 Ralph Amissah + +** License: + +** Ralph Amissah <ralph@amissah.com> + Ralph Amissah <ralph.amissah@gmail.com> + +#% manual settings, edit/update as required (note current default settings are obtained from sisu version yml file) |