diff options
Diffstat (limited to 'lib/sisu/v0/options.rb')
-rw-r--r-- | lib/sisu/v0/options.rb | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/lib/sisu/v0/options.rb b/lib/sisu/v0/options.rb index 8b014c04..a4cdc5e4 100644 --- a/lib/sisu/v0/options.rb +++ b/lib/sisu/v0/options.rb @@ -58,9 +58,9 @@ module SiSU_commandline require "#{SiSU_lib}/sysenv" class Options - attr_accessor :cmd,:mod,:files,:fns,:fnb,:what + attr_accessor :cmd,:mod,:files,:fns,:fnb,:fnc,:fncb,:what def initialize(a) - @cmd,@files,@fns,@fnb,@what,c,w,s='','','','','','','','','' + @cmd,@files,@fns,@fnb,@fnc,@fncb,@what,c,w,s='','','','','','','','','','','' @files,@mod,m,f,z,ca=[],[],[],[],[],[] @env=SiSU_Env::Info_env.new shortcut=SiSU_Env::Info_processing_flag.new @@ -102,7 +102,7 @@ module SiSU_commandline end if x =~/^--\S+/; m << x end - elsif x =~ /(?:\.(?:[_-]?sst(?:\.xml)?|ssm|ssi|sx[sdn]\.xml|s[1-3]|kdi|ssp)|sisupod(?:\.zip)?)$/ + elsif x =~ /(?:\.(?:(?:-|ssm\.)?sst(?:\.xml)?|ssm|ssi|sx[sdn]\.xml|s[1-3]|kdi|ssp)|sisupod(?:\.zip)?)$/ if x =~/^(?:https?|file):\/\/\S+/; f << x elsif FileTest.file?(x); f << x else puts "file not found: #{x}" @@ -162,7 +162,17 @@ module SiSU_commandline end def fnb unless fns.empty? - fns[/(.+?)\.(?:[_-]?sst|ssm)$/,1] + fns[/(.+?)\.(?:(?:-|ssm\.)?sst|ssm)$/,1] + end + end + def fnc + @fnc=if @fns =~/\.(?:ssm\.sst|ssm)$/; fnb + '.ssm.sst' + else @fns + end + end + def fncb + @fncb=if @fns =~/(?:\~\S{2,3})?\.(?:ssm\.sst|ssm)$/; fnb + '.ssm.sst' + else @fns.gsub(/(?:\~\S{2,3})?(\.sst)$/,'\1') end end end |