You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildr.apache.org by la...@apache.org on 2008/08/31 20:14:02 UTC

svn commit: r690746 - in /incubator/buildr/trunk/rakelib: package.rake setup.rake

Author: lacton
Date: Sun Aug 31 11:14:02 2008
New Revision: 690746

URL: http://svn.apache.org/viewvc?rev=690746&view=rev
Log:
Running 'rake install' with GEM_HOME set should not require sudo privileges

Modified:
    incubator/buildr/trunk/rakelib/package.rake
    incubator/buildr/trunk/rakelib/setup.rake

Modified: incubator/buildr/trunk/rakelib/package.rake
URL: http://svn.apache.org/viewvc/incubator/buildr/trunk/rakelib/package.rake?rev=690746&r1=690745&r2=690746&view=diff
==============================================================================
--- incubator/buildr/trunk/rakelib/package.rake (original)
+++ incubator/buildr/trunk/rakelib/package.rake Sun Aug 31 11:14:02 2008
@@ -29,7 +29,7 @@
 task 'install'=>['setup', "#{package.package_dir}/#{package.gem_file}"] do |task|
   print "Installing #{spec.name} ... "
   args = [Config::CONFIG['ruby_install_name'], '-S', 'gem', 'install', "#{package.package_dir}/#{package.gem_file}"]
-  args.unshift('sudo') unless windows?
+  args.unshift('sudo') if sudo_needed?
   sh *args
   puts 'Done'
 end
@@ -38,7 +38,7 @@
 task 'uninstall' do |task|
   print "Uninstalling #{spec.name} ... "
   args = [Config::CONFIG['ruby_install_name'], '-S', 'gem', 'uninstall', spec.name, '--version', spec.version.to_s]
-  args.unshift('sudo') unless windows?
+  args.unshift('sudo') if sudo_needed?
   sh *args
   puts 'Done'
 end

Modified: incubator/buildr/trunk/rakelib/setup.rake
URL: http://svn.apache.org/viewvc/incubator/buildr/trunk/rakelib/setup.rake?rev=690746&r1=690745&r2=690746&view=diff
==============================================================================
--- incubator/buildr/trunk/rakelib/setup.rake (original)
+++ incubator/buildr/trunk/rakelib/setup.rake Sun Aug 31 11:14:02 2008
@@ -25,6 +25,11 @@
 end
 
 
+def sudo_needed?
+  !windows? && (ENV['GEM_HOME'].nil?)
+end
+
+
 # Finds and returns path to executable.  Consults PATH environment variable.
 # Returns nil if executable not found.
 def which(name)
@@ -46,7 +51,7 @@
     puts "Installing #{spec.full_name} ..."
     args = [rb_bin, '-S', 'gem', 'install', spec.name, '-v', spec.version.to_s]
     fail "Please set JAVA_HOME first #{'(no need to run as sudo)' if ENV['USER'] == 'root'}" unless ENV['JAVA_HOME']
-    args.unshift('sudo', 'env', 'JAVA_HOME=' + ENV['JAVA_HOME']) unless windows? || ENV['GEM_HOME']
+    args.unshift('sudo', 'env', 'JAVA_HOME=' + ENV['JAVA_HOME']) if sudo_needed?
     sh *args.map{ |a| a.inspect }.join(' ')
   end
 end