aboutsummaryrefslogtreecommitdiffhomepage
path: root/bin
diff options
context:
space:
mode:
Diffstat (limited to 'bin')
-rwxr-xr-xbin/sisu17
1 files changed, 13 insertions, 4 deletions
diff --git a/bin/sisu b/bin/sisu
index 011c1f4f..7a69dc5d 100755
--- a/bin/sisu
+++ b/bin/sisu
@@ -20,7 +20,7 @@ class Orient
:full_path_to_sisu_bin_in_sisu_dir_tree
elsif processing.sisu_runtime_path =~/\/gems\// \
and processing.sisu_runtime_path \
- =~ processing.gem_regex
+ =~ /\/#{processing.gem_regex}\//
:gem_install
else
:system_install
@@ -43,7 +43,7 @@ class Orient
%r{\bsisu$}
end
def gem_regex
- %r{\/sisu-[0-9]+\.[0-9]+\.[0-9]+(?:\.r[0-9]+\.g[0-9a-f]{7})?\/}
+ %r{sisu-[0-9]+\.[0-9]+\.[0-9]+(?:\.r[0-9]+\.g[0-9a-f]{7})?}
end
self
end
@@ -109,12 +109,21 @@ class Orient
File.expand_path(processing.called_as).
sub(/\/bin\/sisu$/,'/data/sisu')
when :set_path_gem
- Gem::Specification.find_by_name("sisu").gem_dir + '/data/sisu'
+ Gem::Specification.find_by_name("sisu").gem_dir \
+ + '/data/sisu'
else nil
end
end
def sisu_this_lib
- if (processing.called_as \
+ if not Gem::Specification.find_by_name("sisu").nil? \
+ and processing.sisu_runtime_path =~/\/gems\// \
+ and processing.sisu_runtime_path \
+ =~ /\/#{processing.gem_regex}\//
+ # gem sought
+ processing.sisu_runtime_path.
+ gsub(/\/bin\/sisu[a-z0-9._-]*$/,
+ '/lib/sisu')
+ elsif (processing.called_as \
!~ /^#{RbConfig::CONFIG['bindir']}\/sisu$/)
# called off file system, project directory tree
File.expand_path(processing.called_as).