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 | |
| 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')
| -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) | 
