diff options
Diffstat (limited to 'bin')
-rw-r--r-- | bin/sisu | 70 |
1 files changed, 18 insertions, 52 deletions
@@ -2,45 +2,6 @@ # encoding: utf-8 #SiSU: copyright (C) 1997 - 2014 Ralph Amissah; License GPL 3, see appended program information begin - def ruby_version_ok?(base_version) - @v ||=RUBY_VERSION.scan(/\d+/) - vb=base_version.scan(/\d+/) - if @v[0].to_i < vb[0].to_i \ - or @v[0].to_i == vb[0].to_i \ - && @v[1].to_i < vb[1].to_i \ - or @v[0].to_i == vb[0].to_i \ - && @v[1].to_i == vb[1].to_i \ - && @v[1].to_i < vb[2].to_i - raise "Please, use Ruby#{vb} or later, current Ruby #{RUBY_VERSION}" - else check_incompatible_ruby_build? - end - end - def check_incompatible_ruby_build? - require 'rbconfig' - e=Config::CONFIG - if RUBY_VERSION == '1.9.2' \ - && e['PATCHLEVEL'].to_i < 180 - raise <<WOK -There are known issues with early versions of ruby1.9.2. -Please, use Ruby 1.9.2p180 or later, -current version #{e['RUBY_PROGRAM_VERSION']}p#{e['PATCHLEVEL']} -#{%x{ruby -v}.strip.to_s} - -WOK - end - end - def check_sisu_legacy_ruby_version? - rbv_sisu_legacy='1.9.2' #'1.8.7' - ruby_version_ok?(rbv_sisu_legacy) - end - def check_sisu_stable_ruby_version? - rbv_sisu_stable='1.9.2' - ruby_version_ok?(rbv_sisu_stable) - end - def check_sisu_dev_ruby_version? - rbv_sisu_dev='1.9.2' - ruby_version_ok?(rbv_sisu_dev) - end def require_hub_path(sisu_path_specified_lib_) if sisu_path_specified_lib_ \ && FileTest.file?("#{sisu_path_specified_lib_}/#{SiSU_lib}/hub.rb") @@ -51,21 +12,22 @@ WOK end #% sisu branch $VERBOSE=nil - $KCODE='u' if RUBY_VERSION < '1.9' argv=$* SiSU_called_from_directory=Dir.pwd + sisu_is_=:system_install require 'rubygems' - check_sisu_stable_ruby_version? - default_version=if __FILE__ =~/gem/ \ + default_version=if __FILE__ =~/\/gems\// \ and __FILE__ =~/\/sisu-[45]\.(?:\d+|[a-z])\.(?:\d+|[a-z])\// - SiSU_version_dir=case __FILE__ + sisu_is_=:gem_install + sisu_version_dir_=case __FILE__ when /\/sisu-5\.(?:\d+|[a-z])\.(?:\d+|[a-z])\// then 'v5' when /\/sisu-4\.(?:\d+|[a-z])\.(?:\d+|[a-z])\// then 'v4' else 'v4' end else 'v4' end - SiSU_version_dir=case $0 + SiSU_is=sisu_is_ + sisu_version_dir_=case $0 when /\bsisu4$/ then 'v4' when /\bsisu5$/ then 'v5' else @@ -75,10 +37,11 @@ WOK else default_version end end + SiSU_version_dir=sisu_version_dir_ #% $0 File.expand_path($0) e=Config::CONFIG - SiSU_path_base=if $0 =~ /^#{e['bindir']}\/sisu[45]?$/ - nil + sisu_path_base=if $0 =~ /^#{e['bindir']}\/sisu[45]?$/ + :system_default elsif $0 !~ /^#{e['bindir']}\/sisu[45]?$/ \ && File.expand_path($0) =~/bin\/sisu[45]?$/ \ && FileTest.file?($0) @@ -87,16 +50,19 @@ WOK nil end SiSU_lib="sisu/#{SiSU_version_dir}" - sisu_path_specified_lib_=SiSU_path_base \ + sisu_path_specified_lib_=($0 !~ /^#{e['bindir']}\/sisu[45]?$/) \ ? File.expand_path($0).sub(/bin\/sisu[45]?$/,'lib') : nil - SiSU_path_specified_Version_=if __FILE__ =~/gem/ - spec = Gem::Specification.find_by_name("sisu") - spec.gem_dir + "/data/sisu/#{SiSU_version_dir}/v/version.yml" - elsif SiSU_path_base - "#{SiSU_path_base}/data/sisu/#{SiSU_version_dir}/v/version.yml" + SiSU_path_specified_Version_=if SiSU_is==:gem_install + Gem::Specification.find_by_name("sisu").gem_dir + "/data/sisu/#{SiSU_version_dir}/v/version.yml" + elsif sisu_path_specified_lib_ \ + and sisu_path_base + "#{sisu_path_base}/data/sisu/#{SiSU_version_dir}/v/version.yml" + elsif sisu_path_base + Config::CONFIG['datadir'] + '/sisu' + "/#{SiSU_version_dir}/v/version.yml" else nil end + SiSU_path_base=sisu_path_base SiSU_path_lib="#{require_hub_path(sisu_path_specified_lib_)}" #% $* require "#{SiSU_path_lib}/hub" |