aboutsummaryrefslogtreecommitdiffhomepage
path: root/bin
diff options
context:
space:
mode:
authorRalph Amissah <ralph@amissah.com>2015-01-12 10:17:45 -0500
committerRalph Amissah <ralph@amissah.com>2015-01-19 23:46:16 -0500
commitb36588c9f9f5762a8c8e924c6be716a44816b44d (patch)
tree7e95c31e4cdb98684a9687dffd65e8ec41a5078e /bin
parentsisu 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-utils228
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)