class SubversionOnStrongspace :user :repo_name :destination def initialize( argv ) if argv.length != 2 puts "Usage is:" puts "ruby svn.rb [strongspace_username] [repository_name]" puts "E.g.:" puts "ruby svn.rb humandoing my_project" raise else @@user = argv[0] @@repo_name = argv[1] @@destination = "#{@@user}@#{@@user}.strongspace.com:/home/#{@@user}/subversion/" end end def run exec_command( "Creating repository #{@@repo_name}", "svnadmin create ./#{@@repo_name}" ) exec_command( "Copying repository to StrongSpace account", "scp -r ./#{@@repo_name} #{@@destination}" ) exec_command( "Deleting local copy of repository", "rm -Rf ./#{@@repo_name}" ) exec_command( "Checking out new repository from Subversion via svn+ssh", "svn co svn+ssh://#{@@user}@#{@@user}.strongspace.com/home/#{@@user}/subversion/#{@@repo_name}" ) puts "Done!" end private def exec_command( user_message, command ) puts( user_message ) system( command ) end end SubversionOnStrongspace.new( ARGV ).run