diff --git a/msfcli b/msfcli index f6663007ea2e..1d7fed8c5a7b 100755 --- a/msfcli +++ b/msfcli @@ -5,7 +5,11 @@ # or web-based interface. # -msfbase = File.symlink?(__FILE__) ? File.readlink(__FILE__) : __FILE__ +msfbase = __FILE__ +while File.symlink?(msfbase) + msfbase = File.expand_path(File.readlink(msfbase), File.dirname(msfbase)) +end + $:.unshift(File.join(File.dirname(msfbase), 'lib')) $:.unshift(ENV['MSF_LOCAL_LIB']) if ENV['MSF_LOCAL_LIB'] diff --git a/msfconsole b/msfconsole index a0070d7bc62f..a762292cdf47 100755 --- a/msfconsole +++ b/msfconsole @@ -4,7 +4,11 @@ # framework. # -msfbase = File.symlink?(__FILE__) ? File.readlink(__FILE__) : __FILE__ +msfbase = __FILE__ +while File.symlink?(msfbase) + msfbase = File.expand_path(File.readlink(msfbase), File.dirname(msfbase)) +end + $:.unshift(File.join(File.expand_path(File.dirname(msfbase)), 'lib')) $:.unshift(ENV['MSF_LOCAL_LIB']) if ENV['MSF_LOCAL_LIB'] diff --git a/msfd b/msfd index 54309e1c17b4..e52b730fc3fe 100755 --- a/msfd +++ b/msfd @@ -6,7 +6,11 @@ # possible for sessions to to be shared from a single vantage point. # -msfbase = File.symlink?(__FILE__) ? File.readlink(__FILE__) : __FILE__ +msfbase = __FILE__ +while File.symlink?(msfbase) + msfbase = File.expand_path(File.readlink(msfbase), File.dirname(msfbase)) +end + $:.unshift(File.join(File.dirname(msfbase), 'lib')) $:.unshift(ENV['MSF_LOCAL_LIB']) if ENV['MSF_LOCAL_LIB'] diff --git a/msfelfscan b/msfelfscan index 16d4e41bddf3..b45c51509c5a 100755 --- a/msfelfscan +++ b/msfelfscan @@ -2,7 +2,11 @@ # $Id$ -msfbase = File.symlink?(__FILE__) ? File.readlink(__FILE__) : __FILE__ +msfbase = __FILE__ +while File.symlink?(msfbase) + msfbase = File.expand_path(File.readlink(msfbase), File.dirname(msfbase)) +end + $:.unshift(File.join(File.dirname(msfbase), 'lib')) $:.unshift(ENV['MSF_LOCAL_LIB']) if ENV['MSF_LOCAL_LIB'] diff --git a/msfencode b/msfencode index c2b795d9515e..d6847cb6915d 100755 --- a/msfencode +++ b/msfencode @@ -1,6 +1,10 @@ #!/usr/bin/env ruby -msfbase = File.symlink?(__FILE__) ? File.readlink(__FILE__) : __FILE__ +msfbase = __FILE__ +while File.symlink?(msfbase) + msfbase = File.expand_path(File.readlink(msfbase), File.dirname(msfbase)) +end + $:.unshift(File.join(File.dirname(msfbase), 'lib')) $:.unshift(ENV['MSF_LOCAL_LIB']) if ENV['MSF_LOCAL_LIB'] diff --git a/msfgui b/msfgui index d0d0cbc8a3ca..e209005e6458 100755 --- a/msfgui +++ b/msfgui @@ -3,7 +3,11 @@ # This is a basic user interface using the Gtk2 GUI library # -msfbase = File.symlink?(__FILE__) ? File.readlink(__FILE__) : __FILE__ +msfbase = __FILE__ +while File.symlink?(msfbase) + msfbase = File.expand_path(File.readlink(msfbase), File.dirname(msfbase)) +end + $:.unshift(File.join(File.expand_path(File.dirname(msfbase)), 'lib')) $:.unshift(ENV['MSF_LOCAL_LIB']) if ENV['MSF_LOCAL_LIB'] diff --git a/msfmachscan b/msfmachscan index 1e0892f31732..af541949345c 100755 --- a/msfmachscan +++ b/msfmachscan @@ -1,6 +1,10 @@ #!/usr/bin/env ruby -msfbase = File.symlink?(__FILE__) ? File.readlink(__FILE__) : __FILE__ +msfbase = __FILE__ +while File.symlink?(msfbase) + msfbase = File.expand_path(File.readlink(msfbase), File.dirname(msfbase)) +end + $:.unshift(File.join(File.dirname(msfbase), 'lib')) $:.unshift(ENV['MSF_LOCAL_LIB']) if ENV['MSF_LOCAL_LIB'] diff --git a/msfopcode b/msfopcode index 55f2db64bf32..604669822287 100755 --- a/msfopcode +++ b/msfopcode @@ -5,7 +5,11 @@ # and to display information about modules. # -msfbase = File.symlink?(__FILE__) ? File.readlink(__FILE__) : __FILE__ +msfbase = __FILE__ +while File.symlink?(msfbase) + msfbase = File.expand_path(File.readlink(msfbase), File.dirname(msfbase)) +end + $:.unshift(File.join(File.dirname(msfbase), 'lib')) $:.unshift(ENV['MSF_LOCAL_LIB']) if ENV['MSF_LOCAL_LIB'] @@ -362,4 +366,4 @@ case cmd puts("\n" + tbl.to_s + "\n") else $stderr.puts("Unsupported command: #{cmd}") -end \ No newline at end of file +end diff --git a/msfpayload b/msfpayload index c869f8f1bb0e..1db63dc331aa 100755 --- a/msfpayload +++ b/msfpayload @@ -1,6 +1,10 @@ #!/usr/bin/env ruby -msfbase = File.symlink?(__FILE__) ? File.readlink(__FILE__) : __FILE__ +msfbase = __FILE__ +while File.symlink?(msfbase) + msfbase = File.expand_path(File.readlink(msfbase), File.dirname(msfbase)) +end + $:.unshift(File.join(File.dirname(msfbase), 'lib')) $:.unshift(ENV['MSF_LOCAL_LIB']) if ENV['MSF_LOCAL_LIB'] diff --git a/msfpescan b/msfpescan index b68aaf86bc92..2726eeb2c5cc 100755 --- a/msfpescan +++ b/msfpescan @@ -1,6 +1,10 @@ #!/usr/bin/env ruby -msfbase = File.symlink?(__FILE__) ? File.readlink(__FILE__) : __FILE__ +msfbase = __FILE__ +while File.symlink?(msfbase) + msfbase = File.expand_path(File.readlink(msfbase), File.dirname(msfbase)) +end + $:.unshift(File.join(File.dirname(msfbase), 'lib')) $:.unshift(ENV['MSF_LOCAL_LIB']) if ENV['MSF_LOCAL_LIB'] diff --git a/msfrpc b/msfrpc index f1859dffe560..8cc323944e01 100755 --- a/msfrpc +++ b/msfrpc @@ -4,7 +4,11 @@ # instance through a XMLRPC socket. # -msfbase = File.symlink?(__FILE__) ? File.readlink(__FILE__) : __FILE__ +msfbase = __FILE__ +while File.symlink?(msfbase) + msfbase = File.expand_path(File.readlink(msfbase), File.dirname(msfbase)) +end + $:.unshift(File.join(File.dirname(msfbase), 'lib')) $:.unshift(ENV['MSF_LOCAL_LIB']) if ENV['MSF_LOCAL_LIB'] diff --git a/msfrpcd b/msfrpcd index a293f48508ec..e22a36b6f00b 100755 --- a/msfrpcd +++ b/msfrpcd @@ -4,7 +4,11 @@ # it with an XMLRPC interface to the Metasploit Framework. # -msfbase = File.symlink?(__FILE__) ? File.readlink(__FILE__) : __FILE__ +msfbase = __FILE__ +while File.symlink?(msfbase) + msfbase = File.expand_path(File.readlink(msfbase), File.dirname(msfbase)) +end + $:.unshift(File.join(File.dirname(msfbase), 'lib')) $:.unshift(ENV['MSF_LOCAL_LIB']) if ENV['MSF_LOCAL_LIB'] diff --git a/msfweb b/msfweb index 9cda374ecf7b..1e930198811a 100755 --- a/msfweb +++ b/msfweb @@ -3,7 +3,11 @@ # This user interface provides users with a web-based interface to the framework # -msfbase = File.symlink?(__FILE__) ? File.readlink(__FILE__) : __FILE__ +msfbase = __FILE__ +while File.symlink?(msfbase) + msfbase = File.expand_path(File.readlink(msfbase), File.dirname(msfbase)) +end + $:.unshift(File.join(File.dirname(msfbase), 'lib')) $:.unshift(ENV['MSF_LOCAL_LIB']) if ENV['MSF_LOCAL_LIB']