#!/usr/bin/env ruby
=begin

**  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>

=end
#% manual settings, edit/update as required (note current default settings are obtained from sisu version yml file)
begin
  require 'thor'
rescue LoadError
  puts 'thor (package ruby-thor) not found'
end
#begin
#  require './setup/sisu_version'   # ./setup/sisu_version.rb
#    include SiSUversion
#rescue LoadError
#  puts 'this does not appear to be a SiSU development directory'
#  exit
#end
require_relative 'sisu_po4a_libs'        # sisu_po4a_libs.rb
require 'find'
require 'fileutils'
  include FileUtils
require 'pathname'
require 'rbconfig.rb'
#require 'yaml'
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 Configure < Thor
    $SiSU_Language_Codes=LanguageCodes.new
    @@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, overrwrites 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
    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
  $called_as,$argv=$0,$*
  SiSUconf::Configure.start(ARGV)
rescue
end
__END__
