From b36588c9f9f5762a8c8e924c6be716a44816b44d Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Mon, 12 Jan 2015 10:17:45 -0500 Subject: 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 --- bin/sisu-misc-utils | 228 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 228 insertions(+) create mode 100644 bin/sisu-misc-utils (limited to 'bin/sisu-misc-utils') 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: + +** Download: + +** Copyright: (C) 2007 - 2015 Ralph Amissah + +** License: + +** Ralph Amissah + Ralph Amissah + +#% manual settings, edit/update as required (note current default settings are obtained from sisu version yml file) -- cgit v1.2.3