From 08acb95a3fea6b8c29133528c7e0166c7b87a0f4 Mon Sep 17 00:00:00 2001 From: Jeremy Kemper Date: Sat, 29 Oct 2005 23:44:25 +0000 Subject: Improve script/plugin on Windows. Closes #2646. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2821 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- railties/lib/commands/plugin.rb | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) (limited to 'railties/lib') 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! -- cgit v1.2.3