diff options
Diffstat (limited to 'lib/sisu/v0/sysenv.rb')
-rw-r--r-- | lib/sisu/v0/sysenv.rb | 303 |
1 files changed, 167 insertions, 136 deletions
diff --git a/lib/sisu/v0/sysenv.rb b/lib/sisu/v0/sysenv.rb index 4252529d..510324c7 100644 --- a/lib/sisu/v0/sysenv.rb +++ b/lib/sisu/v0/sysenv.rb @@ -353,19 +353,19 @@ module SiSU_Env end if @fns and @fns != '' #watch if multilingual - m=/((.+?)(?:\~\w{2,3})?)\.([_-]?sst|ssm)$/ + m=/((.+?)(?:\~\w{2,3})?)\.((?:-|ssm\.)?sst|ssm)$/ @@fnn ||=@fns[m,1] @@fnb ||=@fns[m,2] @@fnt ||=@fns[m,3] @@flv ||=document_language_versions_found[:f] - @@fnz ||=if @@fns =~/(?:\~\S{2,3})?\.(?:_sst|ssm)$/; @@fnb + '.ssm.zip' + @@fnz ||=if @@fns =~/(?:\~\S{2,3})?\.(?:ssm\.sst|ssm)$/; @@fnb + '.ssm.zip' else @@fnb + '.sst.zip' end - else m=/(.+?)\.([_-]?sst|ssm)$/ + else m=/(.+?)\.((?:-|ssm\.)?sst|ssm)$/ @@fnb ||=@fns[m,1] @@fnm ||=@fns[m,1] @@fnt ||=@fns[m,2] - @@fnz ||=if @@fns =~/(?:\~\S{2,3})?\.(?:_sst|ssm)$/; @@fnb + '.ssm.zip' + @@fnz ||=if @@fns =~/(?:\~\S{2,3})?\.(?:ssm\.sst|ssm)$/; @@fnb + '.ssm.zip' else @@fnb + '.sst.zip' end end @@ -381,9 +381,9 @@ module SiSU_Env @fn={} unless (@fns.nil? or @fns.empty?) if multilingual - m=/((.+?)(?:\~\w{2,3})?)\.([_-]?sst$)/ + m=/((.+?)(?:\~\w{2,3})?)\.((?:-|ssm\.)?sst$)/ @fn[:b],@fn[:m],@fn[:t]=@fns[m,1],@fns[m,2],@fns[m,3] - else m=/(.+?)\.([_-]?sst$)/ + else m=/(.+?)\.((?:-|ssm\.)?sst$)/ @fn[:b]=@fn[:m]=@fns[m,1] @fn[:t]=@fns[m,2] end @@ -411,10 +411,10 @@ module SiSU_Env @m=[] unless (@fns.nil? or @fns.empty?) if multilingual - m=/((.+?)(?:\~\w{2,3})?)\.([_-]?sst$)/ + m=/((.+?)(?:\~\w{2,3})?)\.((?:-|ssm\.)?sst$)/ @fn[:b],@fn[:m],@fn[:t]=@fns[m,1],@fns[m,2],@fns[m,3] #@fl[:v]=@env.document_language_versions_found - else m=/(.+?)\.([_-]?sst$)/ + else m=/(.+?)\.((?:-|ssm\.)?sst$)/ @fn[:b]=@fn[:m]=@fns[m,1] @fn[:t]=@fns[m,2] end @@ -744,7 +744,7 @@ module SiSU_Env language[:c] end def file_to_language(file) - m=/.+?\~(\w{2,3})\.[_-]?sst$/ + m=/.+?\~(\w{2,3})\.(?:-|ssm\.)?sst$/ @language=if file =~m ; file[m,1] else '' end @@ -767,7 +767,7 @@ module SiSU_Env fnb=if @md and defined? @md.fnb; @md.fnb elsif defined? @env.fnb and @env.fnb; @env.fnb elsif not @fns.nil? and not @fns.empty? - m=/(.+)?\.(?:[_-]?sst|ssm)$/m + m=/(.+)?\.(?:(?:-|ssm\.)?sst|ssm)$/m @fns[m,1] if not @fns.empty? end if fnb; @@fb ||=fnb @@ -1110,17 +1110,17 @@ WOK self end def source_file_path - file=@fns.gsub(/(\.ssm)/,'._sst') - pth=unless file =~/\._sst$/; "#{Dir.pwd}" + file=@fns.gsub(/\.ssm(?:\.sst)?/,'.ssm.sst') + pth=unless file =~/\.ssm\.sst$/; "#{Dir.pwd}" else "#{path.composite_file}" end end def source_file_with_path - file=@fns.gsub(/(\.ssm)/,'._sst') + file=@fns.gsub(/\.ssm(?:\.sst)?/,'.ssm.sst') "#{source_file_path}/#{file}" end def read_source_file(fns) - fns_array=unless fns =~/\._sst$/ + fns_array=unless fns =~/\.ssm.sst$/ IO.readlines(fns,'') else IO.readlines("#{path.composite_file}/#{fns}",'') end @@ -2004,23 +2004,38 @@ WOK @rc=Get_init.instance.yamlrc end def remote_host #see Info_remote remote_host_base_general - r={} - r=if (defined? @rc['remote']['user'] and defined? @rc['remote']['host']) - r[:user]=@rc['remote']['user'] - r[:host]=@rc['remote']['host'] - r[:path]=if defined? @rc['remote']['path'] + r=[] + r=if (defined? @rc['remote'] and @rc['remote'].class==Array) + r_array=@rc['remote'] + r_array.each_with_index do |renv,i| + r[i]={} + if defined? renv['user'] and defined? renv['host'] + end + r[i][:user]=renv['user'] + r[i][:host]=renv['host'] + r[i][:path]=if defined? renv['path'] + renv['path'] + else '' + end + r[i][:name]="#{r[i][:user]}@#{r[i][:host]}:#{r[i][:path]}" + end + r + elsif (defined? @rc['remote'] and @rc['remote'].class==Hash and defined? @rc['remote']['user'] and defined? @rc['remote']['host']) + r[0][:user]=@rc['remote']['user'] + r[0][:host]=@rc['remote']['host'] + r[0][:path]=if defined? @rc['remote']['path'] @rc['remote']['path'] else '' end - r[:name]="#{r[:user]}@#{r[:host]}:#{r[:path]}" + r[0][:name]="#{r[:user]}@#{r[:host]}:#{r[:path]}" r else - r[:name]='.' - r[:user]='' - r[:host]='' - r[:path]='' - r + r[0][:name]='.' + r[0][:user]='' + r[0][:host]='' + r[0][:path]='' #puts "no remote host or user" + r end end end @@ -2036,138 +2051,154 @@ WOK SiSU_Env::Info_remote_host.new.remote_host end def remote_host_base - remote=remote_host_base_general - #host_ip=IPSocket.getaddress(remote[:host]) unless remote[:host].empty? - @@flag_remote=true if remote[:name] =~/\S+?@\S+/ #and host_ip =~/\d+\.\d+\.\d+\.\d+/ #very naive check should be enough /[0-255]+\.[0-255]+\.[0-255]+\.[0-255]+/ - remote_host_base_general[:name] + remote_host_base_general.each do |remote_conn| + #host_ip=IPSocket.getaddress(remote[:host]) unless remote[:host].empty? + @@flag_remote=true if remote_conn[:name] =~/\S+?@\S+/ + #remote_conn[:name] + end + remote_host_base_general end def scp #sort out later using ruby libraries #not ideal, first time each file is sent, -r must be called separately for subdir to be built - local=@source_path - remote=case @opt.cmd - when /u/; "#{self.remote_host_base}/#{@env.path.stub_pwd}/." #creates remote directory tree, this is not the usual function of u - when /[abhHNopwxXy]/; "#{self.remote_host_base}/#{@env.path.stub_pwd}/#{@fnb}/." - else "#{self.remote_host_base}/#{@env.path.stub_pwd}/." - end - #remote="#{self.remote_host_base}/#{@env.path.stub_pwd}/." - local_src=@source_path_src - remote_src="#{self.remote_host_base}/#{@env.path.stub_src}/." - src_txt=@opt.fnc - src_pod=@opt.fncb.gsub(/(\.ss[mt])(?:\.sst)?$/,'\1.zip') - if (local =~/\S/ and local !~/\/\//) and (remote =~/\S/ and remote !~/\/\//) and @@flag_remote==true and @opt.cmd !~/U/ - System_call.new(local,remote).scp - if FileTest.file?("#{local_src}/#{src_txt}") or FileTest.file?("#{local_src}/#{src_pod}") - System_call.new("#{local_src}/#{src_txt} #{local_src}/#{src_pod}",remote_src).scp - end - elsif @opt.cmd =~/U/ - puts "#{__FILE__} #{__LINE__}" if @opt.cmd =~/M/ - puts "#{local} -> #{remote}" - if FileTest.file?("#{local_src}/#{src_doc}") or FileTest.file?("#{local_src}/#{src_doc}.zip") - puts "#{local_src}/#{src_doc}* -> #{remote_src}" + self.remote_host_base.each do |remote_conn| + local_gen=@source_path + remote_gen=case @opt.cmd + when /u/; "#{remote_conn[:name]}/#{@env.path.stub_pwd}/." #creates remote directory tree, this is not the usual function of u + when /[abhHNopwxXy]/; "#{remote_conn[:name]}/#{@env.path.stub_pwd}/#{@fnb}/." + else "#{remote_conn[:name]}/#{@env.path.stub_pwd}/." + end + #remote="#{remote_conn[:name]}/#{@env.path.stub_pwd}/." + local_src=@source_path_src + remote_src="#{remote_conn[:name]}/#{@env.path.stub_src}/." + src_txt=@opt.fnc + src_pod=@opt.fncb.gsub(/(\.ss[mt])(?:\.sst)?$/,'\1.zip') + if (local_gen =~/\S/ and local_gen !~/\/\//) and (remote_gen =~/\S/ and remote_gen !~/\/\//) and @@flag_remote==true and @opt.cmd !~/U/ + System_call.new(local_gen,remote_gen).scp + if FileTest.file?("#{local_src}/#{src_txt}") or FileTest.file?("#{local_src}/#{src_pod}") + System_call.new("#{local_src}/#{src_txt} #{local_src}/#{src_pod}",remote_src).scp + end + elsif @opt.cmd =~/U/ + puts "#{__FILE__} #{__LINE__}" if @opt.cmd =~/M/ + puts "#{local_gen} -> #{remote_gen}" + if FileTest.file?("#{local_src}/#{src_doc}") or FileTest.file?("#{local_src}/#{src_doc}.zip") + puts "#{local_src}/#{src_doc}* -> #{remote_src}" + end + else + puts 'suspect scp request, ignored' + puts "#{local_gen} -> #{remote_gen} remote flag: #@@flag_remote" + puts "permission not granted #{__FILE__} #{__LINE__}" if @opt.cmd =~/M/ end - else - puts 'suspect scp request, ignored' - puts "#{local} -> #{remote} remote flag: #@@flag_remote" - puts "permission not granted #{__FILE__} #{__LINE__}" if @opt.cmd =~/M/ end end def rsync - local=@source_path - remote="#{self.remote_host_base}/#{@env.path.stub_pwd}/." - local_src=@source_path_src - remote_src="#{self.remote_host_base}/#{@env.path.stub_src}/." - src_txt=@opt.fnc - src_pod=@opt.fncb.gsub(/(\.ss[mt])(?:\.sst)?$/,'\1.zip') - if (local =~/\S/ and local !~/\/\//) and (remote =~/\S/ and remote !~/\/\//) and @@flag_remote==true and @opt.cmd !~/U/ - System_call.new(local,remote,@opt.cmd).rsync('--delete-after') - if FileTest.file?("#{local_src}/#{src_txt}") or FileTest.file?("#{local_src}/#{src_pod}") - System_call.new("#{local_src}/#{src_txt} #{local_src}/#{src_pod}",remote_src,@opt.cmd).rsync - end - elsif @opt.cmd =~/U/ - puts "#{__FILE__} #{__LINE__}" if @opt.cmd =~/M/ - puts "#{local} -> #{remote}" - if FileTest.file?("#{local_src}/#{src_doc}") or FileTest.file?("#{local_src}/#{src_doc}.zip") - puts "#{local_src}/#{src_doc}* -> #{remote_src}" + self.remote_host_base.each do |remote_conn| + local_gen=@source_path + remote_gen="#{remote_conn[:name]}/#{@env.path.stub_pwd}/." + local_src=@source_path_src + remote_src="#{remote_conn[:name]}/#{@env.path.stub_src}/." + src_txt=@opt.fnc + src_pod=@opt.fncb.gsub(/(\.ss[mt])(?:\.sst)?$/,'\1.zip') + if (local_gen =~/\S/ and local_gen !~/\/\//) and (remote_gen =~/\S/ and remote_gen !~/\/\//) and @@flag_remote==true and @opt.cmd !~/U/ + System_call.new(local_gen,remote_gen,@opt.cmd).rsync('--delete-after') + if FileTest.file?("#{local_src}/#{src_txt}") or FileTest.file?("#{local_src}/#{src_pod}") + System_call.new("#{local_src}/#{src_txt} #{local_src}/#{src_pod}",remote_src,@opt.cmd).rsync + end + elsif @opt.cmd =~/U/ + puts "#{__FILE__} #{__LINE__}" if @opt.cmd =~/M/ + puts "#{local_gen} -> #{remote_gen}" + if FileTest.file?("#{local_src}/#{src_doc}") or FileTest.file?("#{local_src}/#{src_doc}.zip") + puts "#{local_src}/#{src_doc}* -> #{remote_src}" + end + else + puts 'suspect rsync request, ignored' + puts "#{local_gen} -> #{remote_gen} remote flag: #@@flag_remote" + puts "permission not granted #{__FILE__} #{__LINE__}" if @opt.cmd =~/M/ end - else - puts 'suspect rsync request, ignored' - puts "#{local} -> #{remote} remote flag: #@@flag_remote" - puts "permission not granted #{__FILE__} #{__LINE__}" if @opt.cmd =~/M/ end end def scp_base #base site - local=@source_path - remote="#{remote_host_base}/#{@env.path.stub_pwd}/." - if defined? @rc['permission_set']['remote_base_site'] and @rc['permission_set']['remote_base_site'] and @@flag_remote==true and @opt.cmd !~/U/ - puts "begin scp_base: #{local} -> #{remote}" - System_call.new("#{local}/#{@env.path.style}/",remote).scp - elsif @opt.cmd =~/U/ - puts "#{__FILE__} #{__LINE__}" if @opt.cmd =~/M/ - puts "begin scp_base: #{local} -> #{remote}" - puts "#{local}/#{@env.path.style}/ -> #{remote}" - else puts "permission not granted #{__FILE__} #{__LINE__}" if @opt.cmd =~/M/ + self.remote_host_base.each do |remote_conn| + local=@source_path + remote="#{remote_conn[:name]}/#{@env.path.stub_pwd}/." + if defined? @rc['permission_set']['remote_base_site'] and @rc['permission_set']['remote_base_site'] and @@flag_remote==true and @opt.cmd !~/U/ + puts "begin scp_base: #{local} -> #{remote}" + System_call.new("#{local}/#{@env.path.style}/",remote).scp + elsif @opt.cmd =~/U/ + puts "#{__FILE__} #{__LINE__}" if @opt.cmd =~/M/ + puts "begin scp_base: #{local} -> #{remote}" + puts "#{local}/#{@env.path.style}/ -> #{remote}" + else puts "permission not granted #{__FILE__} #{__LINE__}" if @opt.cmd =~/M/ + end end end def scp_base_all #base site - local=@source_path - remote="#{remote_host_base}/#{@env.path.stub_pwd}/." - if defined? @rc['permission_set']['remote_base_site'] and @rc['permission_set']['remote_base_site'] and @@flag_remote==true and @opt.cmd !~/U/ - puts "begin scp_base_all: #{local} -> #{remote}" - System_call.new("#{local}/_sisu/image_sys/",remote).scp - System_call.new("#{local}/_sisu/image/",remote).scp - System_call.new("#{local}/#{@env.path.style}/",remote).scp - elsif @opt.cmd =~/U/ - puts "#{__FILE__} #{__LINE__}" if @opt.cmd =~/M/ - puts "scp_base_all: #{local} -> #{remote}" - puts "#{local}/_sisu/image_sys/ -> #{remote}" - puts "#{local}/_sisu/image/ -> #{remote}" - puts "#{local}/#{@env.path.style}/ -> #{remote}" - else puts "permission not granted #{__FILE__} #{__LINE__}" if @opt.cmd =~/M/ + self.remote_host_base.each do |remote_conn| + local=@source_path + remote="#{remote_conn[:name]}/#{@env.path.stub_pwd}/." + if defined? @rc['permission_set']['remote_base_site'] and @rc['permission_set']['remote_base_site'] and @@flag_remote==true and @opt.cmd !~/U/ + puts "begin scp_base_all: #{local} -> #{remote}" + System_call.new("#{local}/_sisu/image/",remote).scp + System_call.new("#{local}/_sisu/image_local/",remote).scp + System_call.new("#{local}/#{@env.path.style}/",remote).scp + elsif @opt.cmd =~/U/ + puts "#{__FILE__} #{__LINE__}" if @opt.cmd =~/M/ + puts "scp_base_all: #{local} -> #{remote}" + puts "#{local}/_sisu/image/ -> #{remote}" + puts "#{local}/_sisu/image_local/ -> #{remote}" + puts "#{local}/#{@env.path.style}/ -> #{remote}" + else puts "permission not granted #{__FILE__} #{__LINE__}" if @opt.cmd =~/M/ + end end end def rsync_base #base site - local=@source_path - remote="#{remote_host_base}/#{@env.path.stub_pwd}/." - if defined? @rc['permission_set']['remote_base_site'] and @rc['permission_set']['remote_base_site'] and @@flag_remote==true and @opt.cmd !~/U/ - #puts "begin rsync_base: #{local} -> #{remote}" - #System_call.new("#{local}/_sisu/image/",remote).rsync - #System_call.new("#{local}/_sisu/image_local/",remote).rsync - #System_call.new("#{local}/#{@env.path.style}/",remote).rsync - elsif @opt.cmd =~/U/ - puts "#{__FILE__} #{__LINE__}" if @opt.cmd =~/M/ - puts "rsync_base: #{local} -> #{remote}" - puts "#{local}/_sisu/image_sys/ -> #{remote}" - puts "#{local}/_sisu/image/ -> #{remote}" - puts "#{local}/#{@env.path.style}/ -> #{remote}" - else puts "permission not granted #{__FILE__} #{__LINE__}" if @opt.cmd =~/M/ + self.remote_host_base.each do |remote_conn| + local=@source_path + remote="#{remote_conn[:name]}/#{@env.path.stub_pwd}/." + if defined? @rc['permission_set']['remote_base_site'] and @rc['permission_set']['remote_base_site'] and @@flag_remote==true and @opt.cmd !~/U/ + #puts "begin rsync_base: #{local} -> #{remote}" + #System_call.new("#{local}/_sisu/image/",remote).rsync + #System_call.new("#{local}/_sisu/image_local/",remote).rsync + #System_call.new("#{local}/#{@env.path.style}/",remote).rsync + elsif @opt.cmd =~/U/ + puts "#{__FILE__} #{__LINE__}" if @opt.cmd =~/M/ + puts "rsync_base: #{local} -> #{remote}" + puts "#{local}/_sisu/image/ -> #{remote}" + puts "#{local}/_sisu/image_local/ -> #{remote}" + puts "#{local}/#{@env.path.style}/ -> #{remote}" + else puts "permission not granted #{__FILE__} #{__LINE__}" if @opt.cmd =~/M/ + end end end def rsync_base_sync #base site - local=@source_path - remote="#{remote_host_base}/#{@env.path.stub_pwd}/." - if defined? @rc['permission_set']['remote_base_site'] and @rc['permission_set']['remote_base_site'] and @@flag_remote==true and @opt.cmd !~/U/ - puts "begin rsync_base_sync: #{local} -> #{remote}" - System_call.new("#{local}/_sisu/image_sys/",remote).rsync('--delete-after') - System_call.new("#{local}/_sisu/image/",remote).rsync('--delete-after') - System_call.new("#{local}/#{@env.path.style}/",remote).rsync('--delete-after') - elsif @opt.cmd =~/U/ - puts "#{__FILE__} #{__LINE__}" if @opt.cmd =~/M/ - puts "rsync_base_sync: #{local} -> #{remote}" - puts "#{local}/_sisu/image_sys/ -> #{remote}" - puts "#{local}/_sisu/image/ -> #{remote}" - puts "#{local}/#{@env.path.style}/ -> #{remote}" - else puts "permission not granted #{__FILE__} #{__LINE__}" if @opt.cmd =~/M/ + self.remote_host_base.each do |remote_conn| + local=@source_path + remote="#{remote_conn[:name]}/#{@env.path.stub_pwd}/." + if defined? @rc['permission_set']['remote_base_site'] and @rc['permission_set']['remote_base_site'] and @@flag_remote==true and @opt.cmd !~/U/ + puts "begin rsync_base_sync: #{local} -> #{remote}" + System_call.new("#{local}/_sisu/image/",remote).rsync('--delete-after') + System_call.new("#{local}/_sisu/image_local/",remote).rsync('--delete-after') + System_call.new("#{local}/#{@env.path.style}/",remote).rsync('--delete-after') + elsif @opt.cmd =~/U/ + puts "#{__FILE__} #{__LINE__}" if @opt.cmd =~/M/ + puts "rsync_base_sync: #{local} -> #{remote}" + puts "#{local}/_sisu/image/ -> #{remote}" + puts "#{local}/_sisu/image_local/ -> #{remote}" + puts "#{local}/#{@env.path.style}/ -> #{remote}" + else puts "permission not granted #{__FILE__} #{__LINE__}" if @opt.cmd =~/M/ + end end end def rsync_sitemaps #sitemap directory - local="#@source_path/sitemapindex.xml" - remote="#{remote_host_base}/#{@env.path.stub_pwd}/." - if @@flag_remote - #if defined? @rc['permission_set']['remote_base_site'] and @rc['permission_set']['remote_base_site'] #and @@flag_remote==true and @opt.cmd !~/U/ - System_call.new(local,remote).rsync('--delete-after') - elsif @opt.cmd =~/U/ - puts "#{__FILE__} #{__LINE__}" if @opt.cmd =~/M/ - puts "rsync_sitemaps: #{local} -> #{remote}" - else puts "permission not granted #{__FILE__} #{__LINE__}" if @opt.cmd =~/M/ + self.remote_host_base.each do |remote_conn| + local="#@source_path/sitemapindex.xml" + remote="#{remote_conn[:name]}/#{@env.path.stub_pwd}/." + if @@flag_remote + #if defined? @rc['permission_set']['remote_base_site'] and @rc['permission_set']['remote_base_site'] #and @@flag_remote==true and @opt.cmd !~/U/ + System_call.new(local,remote).rsync('--delete-after') + elsif @opt.cmd =~/U/ + puts "#{__FILE__} #{__LINE__}" if @opt.cmd =~/M/ + puts "rsync_sitemaps: #{local} -> #{remote}" + else puts "permission not granted #{__FILE__} #{__LINE__}" if @opt.cmd =~/M/ + end end end end @@ -2209,7 +2240,7 @@ WOK @fns=fns end def basefilename - m=/(.+?)\.(?:[_-]?sst|ssm)$/m + m=/(.+?)\.(?:(?:-|ssm\.)?sst|ssm)$/m fnb=@fns[m,1] end def project |