aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/commands/plugin.rb
diff options
context:
space:
mode:
Diffstat (limited to 'railties/lib/commands/plugin.rb')
-rw-r--r--railties/lib/commands/plugin.rb30
1 files changed, 27 insertions, 3 deletions
diff --git a/railties/lib/commands/plugin.rb b/railties/lib/commands/plugin.rb
index 0e69f4b595..8dc569387b 100644
--- a/railties/lib/commands/plugin.rb
+++ b/railties/lib/commands/plugin.rb
@@ -46,6 +46,12 @@
# Send patches to rtomayko@gmail.com
$verbose = false
+`svn --version`
+unless $?.success?
+ $stderr.puts "ERROR: Must have subversion (svn) available in the PATH to use plugin manager"
+ exit 1
+end
+
require 'fileutils'
require 'tempfile'
@@ -193,7 +199,7 @@ end
class Repositories
include Enumerable
- def initialize(cache_file="~/.rails-plugin-sources")
+ def initialize(cache_file = File.join(find_home, ".rails-plugin-sources"))
@cache_file = File.expand_path(cache_file)
load!
end
@@ -252,7 +258,25 @@ class Repositories
http://svn.aviditybytes.com/rails/plugins/
REPOSITORIES
end
-
+
+ def find_home
+ ['HOME', 'USERPROFILE'].each do |homekey|
+ return ENV[homekey] if ENV[homekey]
+ end
+ if ENV['HOMEDRIVE'] && ENV['HOMEPATH']
+ return "#{ENV['HOMEDRIVE']}:#{ENV['HOMEPATH']}"
+ end
+ begin
+ File.expand_path("~")
+ rescue StandardError => ex
+ if File::ALT_SEPARATOR
+ "C:/"
+ else
+ "/"
+ end
+ end
+ end
+
def self.instance
@instance ||= Repositories.new
end
@@ -740,4 +764,4 @@ module Commands
end
-Commands::Plugin.parse! \ No newline at end of file
+Commands::Plugin.parse!