class Object
Constants
- HOME_PATH
- SSH_PATH
- SWITCH_FILE
Public Instance Methods
backup(name)
click to toggle source
# File bin/sshwitch, line 61 def backup(name) if File.directory? SSH_PATH+name puts "#{SSH_PATH+name} already exists, skipping" else puts "Copying current key pair in #{SSH_PATH} to #{SSH_PATH+name}" begin mkdir SSH_PATH+name cp(SSH_PATH+"/id_rsa", SSH_PATH+name+"id_rsa", :verbose => true) cp(SSH_PATH+"/id_rsa.pub", SSH_PATH+name+"id_rsa.pub", :verbose => true) rescue => e puts "Could not backup key pair, check if you have permission to write on #{SSH_PATH+name}" puts e.message end end end
delete(name)
click to toggle source
# File bin/sshwitch, line 94 def delete(name) begin Dir.glob(File.join(SSH_PATH+name, "*")).each {|file| rm file, :verbose => true} rmdir SSH_PATH+name, :verbose => true rescue => e puts e.message end end
get_current()
click to toggle source
# File bin/sshwitch, line 11 def get_current begin File.open(SWITCH_FILE).first rescue File.new(SWITCH_FILE, 'w') nil end end
list()
click to toggle source
# File bin/sshwitch, line 20 def list begin Dir[SSH_PATH+'*/'].map { |a| File.basename(a) } end end
new(name)
click to toggle source
# File bin/sshwitch, line 45 def new(name) if File.directory? SSH_PATH+name puts "#{SSH_PATH+name} already exists, skipping" else puts "Creating key pair in #{SSH_PATH+name}" begin mkdir SSH_PATH+name `ssh-keygen -t rsa -f #{SSH_PATH+name}/id_rsa` rmdir SSH_PATH+name rescue => e puts "Could not create key pair, check if you have permission to write on #{SSH_PATH+name}" puts e.message end end end
rename(oldname, newname)
click to toggle source
# File bin/sshwitch, line 77 def rename(oldname, newname) if File.directory? SSH_PATH+newname puts "#{SSH_PATH+newname} already exists, cannot rename" else begin mv SSH_PATH+oldname, SSH_PATH+newname, :verbose => true if get_current == oldname File.open(SWITCH_FILE, 'w') {|f| f.write(newname) } puts "Renamed the current key" end rescue => e puts e.message puts "Could not rename" end end end
switch(name)
click to toggle source
# File bin/sshwitch, line 26 def switch(name) if File.readable?(SSH_PATH+name+"/id_rsa") && File.readable?(SSH_PATH+name+"/id_rsa.pub") begin cp(SSH_PATH+name+"/id_rsa", SSH_PATH+"id_rsa", :verbose => true) cp(SSH_PATH+name+"/id_rsa.pub", SSH_PATH+"id_rsa.pub", :verbose => true) File.open(SWITCH_FILE, 'w') {|f| f.write(name) } puts "Changed key pair to: " + name rescue => e puts "Could not copy, check if you have permission to write on #{SSH_PATH}" puts e.message end else puts "Could not read key pair in #{SSH_PATH+name}" puts "Check if key pair exists in #{SSH_PATH+name}\n\n" puts "If not you can create a new one with: \"sshwitch -n #{name}\"" puts "Or backup the current key pair in #{SSH_PATH} with: \"sshwitch -b #{name}\"" end end