# encoding: utf-8 # - Name: SiSU # # - Description: documents, structuring, processing, publishing, search # hub # # - Author: Ralph Amissah # # # - Copyright: (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, # 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2019, # 2020, 2021, Ralph Amissah, # All Rights Reserved. # # - License: GPL 3 or later: # # SiSU, a framework for document structuring, publishing and search # # Copyright (C) Ralph Amissah # # This program is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the Free # Software Foundation, either version 3 of the License, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for # more details. # # You should have received a copy of the GNU General Public License along with # this program. If not, see . # # If you have Internet connection, the latest version of the GPL should be # available at these locations: # # # # # # - SiSU uses: # - Standard SiSU markup syntax, # - Standard SiSU meta-markup syntax, and the # - Standard SiSU object citation numbering and system # # - Homepages: # # # - Git # # # module SiSU_Hub_Loops require_relative 'constants' # constants.rb require_relative 'se' # se.rb include SiSU_Env include SiSU_Screen require_relative 'hub_actions' # hub_actions.rb require_relative 'hub_options' # hub_options.rb require_relative 'dp' # dp.rb include SiSU_Param require_relative 'utils' # utils.rb begin require 'uri' rescue LoadError SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia). error('uri NOT FOUND (LoadError)') end class OptionLoopFiles attr_reader :opt def initialize(opt) @opt=opt @r=Px[:lng_lst_rgx] end def loop_files_on_given_option @opt.files.each_with_index do |fno,i| @opt.fno,@opt.fns=fno,fno @opt.f_pth=@opt.f_pths[i] if fno !~/\.-sst$/ @opt.pth=@opt.paths[i] @opt.lng=@opt.lngs[i] end @@pwd=@opt.pth @opt.pth=@opt.f_pths[i][:pth] @opt.lng=@opt.f_pths[i][:lng] Dir.chdir(@opt.f_pth[:pth]) #watch SiSU_Env::FilenameLanguageCodeInsert.new(@opt,@opt.lng).language_code_insert # ... track @env=SiSU_Env::InfoEnv.new(fno) yield end end def loop_files_on_given_option_bundle @files_bundle={} @opt.files.each_with_index do |fno,i| fn_base_bundle=fno.gsub(/(?:~(?:#{@r}))?\.ss[tm]$/,'') unless @files_bundle[fn_base_bundle] @files_bundle[fn_base_bundle]={ status: :todo } end end @opt.files.each_with_index do |fno,i| fn_base_bundle=fno.gsub(/(?:~(?:#{@r}))?\.ss[tm]$/,'') unless @files_bundle[fn_base_bundle][:status] == :done @files_bundle[fn_base_bundle][:status] = :done @opt.fns=fno @opt.fno=fno @opt.f_pth=@opt.f_pths[i] if fno !~/\.-sst$/ @opt.pth=@opt.paths[i] @opt.lng=@opt.lngs[i] end @@pwd=@opt.pth @opt.pth=@opt.f_pths[i][:pth] @opt.lng=@opt.f_pths[i][:lng] Dir.chdir(@opt.f_pth[:pth]) #watch @env=SiSU_Env::InfoEnv.new(fno) yield else next end end end def manifest_on_files_translated number_of_files={} @opt.files.each_with_index do |fns,i| fn=fns.gsub(/(?:~(?:#{@r}))?\.ss[tm]$/,'') (number_of_files[fn].is_a?(Array)) \ ? (number_of_files[fn] << i) : (number_of_files.store(fn,[i])) end files_translated_idx=[] number_of_files.each do |x| if x[1].length > 1 files_translated_idx << x[1] end end #files_translated_idx=number_of_files.select do |x| # x[1] if x[1].length > 1 #end if files_translated_idx.flatten.length > 1 SiSU_Screen::Ansi.new( @opt.act[:color_state][:set], 'Manifest re-run on (currently generated) translated files', '' ).grey_title_hi unless @opt.act[:quiet][:set] ==:on files_translated_idx.flatten.each do |i| @opt.fns=@opt.files[i] @opt.f_pth=@opt.f_pths[i] if @opt.fns =~/\.-sst$/ @opt.pth=Dir.pwd @opt.lng='en' elsif @opt.fno =~/\.txz$/ @opt.pth=@opt.f_pths[i][:pth] @opt.lng=@opt.f_pths[i][:lng] else @opt.pth=@opt.f_pths[i][:pth] @opt.lng=@opt.f_pths[i][:lng] end @@pwd=@opt.pth Dir.chdir(@opt.pth) #watch @env=SiSU_Env::InfoEnv.new(@opt.fns) yield end end end end end __END__