ssh-manager 0.0.7 → 0.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/config/settings.yml +1 -0
- data/lib/ssh/manager/cli.rb +37 -16
- data/lib/ssh/manager/client.rb +7 -0
- data/lib/ssh/manager/db.rb +1 -1
- data/lib/ssh/manager/version.rb +1 -1
- data/ssh-manager.gemspec +7 -8
- metadata +30 -30
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: a6902e64d708bfa6f45c209b5a885e0e07aaff9a
         | 
| 4 | 
            +
              data.tar.gz: 9bf241a439fdb0da8c5d1060153e5c79af85d801
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 6a3ee0a5bdef1d0d1ce564aec22b0e48436c526db2c2f145e0d29cf8746a54ff3f3cefa6ec4e5679cd2e8f0d9fde340aac047032785994ac9b316d894df27bf8
         | 
| 7 | 
            +
              data.tar.gz: fb668462fda43158b1b2c30c63743385c64e40d7abe48ac4bb8efff1c5d30345dfe976f3f99c280b086b9327ca2ea1c0d3293258fab533c9b0715bef9ca6d411
         | 
    
        data/config/settings.yml
    CHANGED
    
    
    
        data/lib/ssh/manager/cli.rb
    CHANGED
    
    | @@ -3,11 +3,14 @@ require 'yaml' | |
| 3 3 | 
             
            FileUtils.cp ("#{File.dirname(__FILE__)}/../../../config/settings.yml"), ("#{File.join(Dir.home)}" + '/.config/sshm/') unless File.exists?(("#{File.join(Dir.home)}" + '/.config/sshm/settings.yml'))
         | 
| 4 4 | 
             
            CONFIG = YAML.load_file("#{File.join(ENV['HOME'])}/.config/sshm/settings.yml")
         | 
| 5 5 | 
             
            require 'debugger'
         | 
| 6 | 
            +
            require_relative 'version'
         | 
| 6 7 |  | 
| 7 8 | 
             
            module SSH
         | 
| 8 9 | 
             
              module Manager
         | 
| 9 10 | 
             
                class Cli
         | 
| 10 11 |  | 
| 12 | 
            +
                  DATABASE = SSH::Manager::Database.new
         | 
| 13 | 
            +
             | 
| 11 14 | 
             
                  def initialize(opts = {})
         | 
| 12 15 | 
             
                    @options = opts
         | 
| 13 16 | 
             
                  end
         | 
| @@ -15,12 +18,13 @@ module SSH | |
| 15 18 | 
             
                  def check_term(ip, user)
         | 
| 16 19 | 
             
                    if CONFIG['terminal'] == "xfce4-terminal" || CONFIG['terminal'] == "gnome-terminal"
         | 
| 17 20 | 
             
                      if CONFIG['tabbed'] == 'true'
         | 
| 18 | 
            -
                        command =  | 
| 21 | 
            +
                        command = "--title=#{user}@#{ip} --tab --command="
         | 
| 19 22 | 
             
                      else
         | 
| 20 | 
            -
                        command =  | 
| 23 | 
            +
                        command = "--title=#{user}@#{ip} --command="
         | 
| 21 24 | 
             
                      end
         | 
| 22 25 | 
             
                      #TODO: add title --title='connection name to identify '
         | 
| 23 26 | 
             
                      #TODO: bug when no terminal is open => wants to open 2 terms
         | 
| 27 | 
            +
                      #TODO: dnslookup
         | 
| 24 28 | 
             
                      %x(#{CONFIG['terminal']} #{command}"ssh #{user}@#{ip}")
         | 
| 25 29 | 
             
                    elsif CONFIG['terminal'] == "xterm" || CONFIG['terminal'] == "urxvt"
         | 
| 26 30 | 
             
                      %x(#{CONFIG['terminal']} -e "ssh #{user}@#{ip}")
         | 
| @@ -31,13 +35,30 @@ module SSH | |
| 31 35 | 
             
                  end
         | 
| 32 36 |  | 
| 33 37 | 
             
                  def connect_to(id)
         | 
| 34 | 
            -
                    @ip =  | 
| 35 | 
            -
                    @user =  | 
| 38 | 
            +
                    @ip = DATABASE.get_connection_data[id.to_i-1][0]
         | 
| 39 | 
            +
                    @user = DATABASE.get_connection_data[id.to_i-1][1]
         | 
| 36 40 | 
             
                    check_term(@ip, @user)
         | 
| 37 41 | 
             
                    #TODO: check for options
         | 
| 38 42 | 
             
                    #TODO: if db[secure_login] = false => http://linuxcommando.blogspot.de/2008/10/how-to-disable-ssh-host-key-checking.html
         | 
| 39 43 | 
             
                  end
         | 
| 40 44 |  | 
| 45 | 
            +
                  def update_available
         | 
| 46 | 
            +
                    #Thread.new {
         | 
| 47 | 
            +
                    new_version =%x(gem search ssh-manager).split(' ')[1]
         | 
| 48 | 
            +
                    old_version = SSH::Manager::VERSION
         | 
| 49 | 
            +
                    if new_version<old_version
         | 
| 50 | 
            +
                      puts 'There is a update available -> sudo gem update ssh-manager'
         | 
| 51 | 
            +
                    end
         | 
| 52 | 
            +
                    #}
         | 
| 53 | 
            +
                  end
         | 
| 54 | 
            +
             | 
| 55 | 
            +
             | 
| 56 | 
            +
                  def transfer_key(id)
         | 
| 57 | 
            +
                    @ip = DATABASE.get_connection_data[id.to_i-1][0]
         | 
| 58 | 
            +
                    @user = DATABASE.get_connection_data[id.to_i-1][1]
         | 
| 59 | 
            +
                    %x(ssh-copy-id #{@user}@#{@ip})
         | 
| 60 | 
            +
                  end
         | 
| 61 | 
            +
             | 
| 41 62 | 
             
                  def add_connection(ip)
         | 
| 42 63 | 
             
                    puts 'Username: '
         | 
| 43 64 | 
             
                    user = $stdin.gets.chomp
         | 
| @@ -57,22 +78,22 @@ module SSH | |
| 57 78 | 
             
                    count = 0
         | 
| 58 79 | 
             
                    created_at = Time.now.to_s
         | 
| 59 80 | 
             
                    last_time = Time.now.to_s
         | 
| 60 | 
            -
                     | 
| 81 | 
            +
                    DATABASE.add_new_connection(ip, user, hostname, port, note, created_at, options, count, group, last_time)
         | 
| 61 82 | 
             
                  end
         | 
| 62 83 |  | 
| 63 84 | 
             
                  def delete(id)
         | 
| 64 85 | 
             
                    id = id.to_i - 1
         | 
| 65 | 
            -
                     | 
| 86 | 
            +
                    DATABASE.delete_connection(DATABASE.get_connection_data[id][0])
         | 
| 66 87 | 
             
                  end
         | 
| 67 88 |  | 
| 68 89 | 
             
                  def list_all
         | 
| 69 90 | 
             
                    cnt = 0
         | 
| 70 | 
            -
                    connections = Hash[ | 
| 71 | 
            -
                    puts 'ID IP | 
| 91 | 
            +
                    connections = Hash[DATABASE.get_connection_data.collect { |x| [cnt+=1, x]}]
         | 
| 92 | 
            +
                    puts 'ID IP             USERNAME       NOTES          GROUP'
         | 
| 72 93 | 
             
                    connections.each do |x|
         | 
| 73 94 | 
             
                      print "#{x[0]}: "
         | 
| 74 95 | 
             
                      x[1].each do |a|
         | 
| 75 | 
            -
                        printf '%- | 
| 96 | 
            +
                        printf '%-15s', a
         | 
| 76 97 | 
             
                      end
         | 
| 77 98 | 
             
                      puts "\n"
         | 
| 78 99 | 
             
                    end
         | 
| @@ -82,22 +103,22 @@ module SSH | |
| 82 103 | 
             
                    puts 'Entries wont change of left out blank.'
         | 
| 83 104 | 
             
                    puts 'Username: '
         | 
| 84 105 | 
             
                    user =$stdin.gets.chomp
         | 
| 85 | 
            -
                    user =  | 
| 106 | 
            +
                    user = DATABASE.get_connection_data[id.to_i][1] if user == ''
         | 
| 86 107 | 
             
                    puts 'Hostname: '
         | 
| 87 108 | 
             
                    hostname = $stdin.gets.chomp
         | 
| 88 | 
            -
                    hostname =  | 
| 109 | 
            +
                    hostname = DATABASE.get_connection_data[id.to_i][2] if hostname == ''
         | 
| 89 110 | 
             
                    puts 'port: '
         | 
| 90 111 | 
             
                    port = $stdin.gets.chomp
         | 
| 91 | 
            -
                    port =  | 
| 112 | 
            +
                    port = DATABASE.get_connection_data[id.to_i][3] if port == ''
         | 
| 92 113 | 
             
                    puts 'Notes: '
         | 
| 93 114 | 
             
                    note = $stdin.gets.chomp
         | 
| 94 | 
            -
                    note =  | 
| 95 | 
            -
                     | 
| 115 | 
            +
                    note = DATABASE.get_connection_data[id.to_i][4] if note == ''
         | 
| 116 | 
            +
                    DATABASE.update_connection(DATABASE.get_connection_data[id.to_i][0], user, hostname, port, note)
         | 
| 96 117 | 
             
                  end
         | 
| 97 118 |  | 
| 98 119 | 
             
                  def search_for(term)
         | 
| 99 120 | 
             
                    puts 'IP                  USERNAME            HOSTNAME            PORT                NOTES               GROUP'
         | 
| 100 | 
            -
                     | 
| 121 | 
            +
                    DATABASE.search_for(term).each do |x|
         | 
| 101 122 | 
             
                      x.all.each do |cons|
         | 
| 102 123 | 
             
                        cons.values.each do |each_con|
         | 
| 103 124 | 
             
                          printf '%-20s', each_con
         | 
| @@ -109,7 +130,7 @@ module SSH | |
| 109 130 | 
             
                  end
         | 
| 110 131 |  | 
| 111 132 | 
             
                  def multiple_connection(term)
         | 
| 112 | 
            -
                     | 
| 133 | 
            +
                    DATABASE.search_for(term).each do |x|
         | 
| 113 134 | 
             
                      x.all.each do |dataset|
         | 
| 114 135 | 
             
                        check_term(dataset[:ip], dataset[:user])
         | 
| 115 136 | 
             
                        #TODO: Add terminalposition
         | 
    
        data/lib/ssh/manager/client.rb
    CHANGED
    
    | @@ -36,6 +36,9 @@ module SSH | |
| 36 36 | 
             
                    elsif @options[:multi]
         | 
| 37 37 | 
             
                      puts 'Connecting to multiple ips'
         | 
| 38 38 | 
             
                      cli.new(@options).multiple_connection(@options[:multi])
         | 
| 39 | 
            +
                    elsif @options[:transfer_key]
         | 
| 40 | 
            +
                      puts 'Transfering key'
         | 
| 41 | 
            +
                      cli.new(@options).transfer_key(@options[:transfer_key])
         | 
| 39 42 | 
             
                    elsif @options[:search]
         | 
| 40 43 | 
             
                      puts 'Searching ..'
         | 
| 41 44 | 
             
                      cli.new(@options).search_for(@options[:search])
         | 
| @@ -56,6 +59,10 @@ module SSH | |
| 56 59 | 
             
                      opts.on( '-a', '--add ip', 'Add ip to your Connection list' ) do |opt|
         | 
| 57 60 | 
             
                        @options[:add] = opt
         | 
| 58 61 | 
             
                      end
         | 
| 62 | 
            +
                      @options[:transfer_key] = false
         | 
| 63 | 
            +
                      opts.on( '-t', '--transferkey id', 'transfer key to <id>' ) do |opt|
         | 
| 64 | 
            +
                        @options[:transfer_key] = opt
         | 
| 65 | 
            +
                      end
         | 
| 59 66 | 
             
                      @options[:connect] = false
         | 
| 60 67 | 
             
                      opts.on( '-c', '--connect id', 'connect to <id>' ) do |opt|
         | 
| 61 68 | 
             
                        @options[:connect] = opt
         | 
    
        data/lib/ssh/manager/db.rb
    CHANGED
    
    | @@ -18,7 +18,7 @@ module SSH | |
| 18 18 | 
             
                  end
         | 
| 19 19 |  | 
| 20 20 | 
             
                  def get_connection_data
         | 
| 21 | 
            -
                    @connections.map([:ip, :user, : | 
| 21 | 
            +
                    @connections.map([:ip, :user, :note, :group])
         | 
| 22 22 | 
             
                  end
         | 
| 23 23 |  | 
| 24 24 | 
             
                  def add_new_connection(ip, user='root', hostname='', port=22, note='', created_at, option, count, group, last_time)
         | 
    
        data/lib/ssh/manager/version.rb
    CHANGED
    
    
    
        data/ssh-manager.gemspec
    CHANGED
    
    | @@ -6,12 +6,12 @@ require 'ssh/manager/version' | |
| 6 6 | 
             
            Gem::Specification.new do |spec|
         | 
| 7 7 | 
             
              spec.name          = "ssh-manager"
         | 
| 8 8 | 
             
              spec.version       = SSH::Manager::VERSION
         | 
| 9 | 
            -
              spec.authors       = ["Joshua Schmid | 
| 10 | 
            -
              spec.email         = ["jschmid@suse.com | 
| 11 | 
            -
              spec.description   = %q{ssh connections | 
| 12 | 
            -
              spec.summary       = %q{manage and connect}
         | 
| 9 | 
            +
              spec.authors       = ["Joshua Schmid"]
         | 
| 10 | 
            +
              spec.email         = ["jschmid@suse.com"]
         | 
| 11 | 
            +
              spec.description   = %q{Manage ssh connections}
         | 
| 12 | 
            +
              spec.summary       = %q{manage and connect ssh}
         | 
| 13 13 | 
             
              spec.homepage      = "https://rubygems.org/profiles/jschmid"
         | 
| 14 | 
            -
              spec.license       = " | 
| 14 | 
            +
              spec.license       = "MIT"
         | 
| 15 15 |  | 
| 16 16 | 
             
              spec.files         = `git ls-files -z`.split("\x0")
         | 
| 17 17 | 
             
              spec.executables   = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
         | 
| @@ -19,8 +19,7 @@ Gem::Specification.new do |spec| | |
| 19 19 | 
             
              spec.require_paths = ["lib"]
         | 
| 20 20 |  | 
| 21 21 | 
             
              spec.add_development_dependency "bundler", "~> 1.3"
         | 
| 22 | 
            -
              spec.add_runtime_dependency 'sequel' | 
| 23 | 
            -
              spec.add_runtime_dependency 'sqlite3' | 
| 24 | 
            -
              #spec.add_runtime_dependency 'ruby-devel', '=1.3.9'
         | 
| 22 | 
            +
              spec.add_runtime_dependency 'sequel'
         | 
| 23 | 
            +
              spec.add_runtime_dependency 'sqlite3'
         | 
| 25 24 | 
             
              spec.add_development_dependency "rake"
         | 
| 26 25 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,87 +1,87 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: ssh-manager
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0. | 
| 4 | 
            +
              version: 0.0.9
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 | 
            -
            - Joshua Schmid | 
| 7 | 
            +
            - Joshua Schmid
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2014- | 
| 11 | 
            +
            date: 2014-12-03 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: bundler
         | 
| 15 15 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 16 | 
             
                requirements:
         | 
| 17 | 
            -
                - - ~>
         | 
| 17 | 
            +
                - - "~>"
         | 
| 18 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 19 19 | 
             
                    version: '1.3'
         | 
| 20 20 | 
             
              type: :development
         | 
| 21 21 | 
             
              prerelease: false
         | 
| 22 22 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 23 | 
             
                requirements:
         | 
| 24 | 
            -
                - - ~>
         | 
| 24 | 
            +
                - - "~>"
         | 
| 25 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 26 26 | 
             
                    version: '1.3'
         | 
| 27 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 28 28 | 
             
              name: sequel
         | 
| 29 29 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 30 | 
             
                requirements:
         | 
| 31 | 
            -
                - -  | 
| 31 | 
            +
                - - ">="
         | 
| 32 32 | 
             
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            -
                    version:  | 
| 33 | 
            +
                    version: '0'
         | 
| 34 34 | 
             
              type: :runtime
         | 
| 35 35 | 
             
              prerelease: false
         | 
| 36 36 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 37 | 
             
                requirements:
         | 
| 38 | 
            -
                - -  | 
| 38 | 
            +
                - - ">="
         | 
| 39 39 | 
             
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            -
                    version:  | 
| 40 | 
            +
                    version: '0'
         | 
| 41 41 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 42 42 | 
             
              name: sqlite3
         | 
| 43 43 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 44 | 
             
                requirements:
         | 
| 45 | 
            -
                - -  | 
| 45 | 
            +
                - - ">="
         | 
| 46 46 | 
             
                  - !ruby/object:Gem::Version
         | 
| 47 | 
            -
                    version:  | 
| 47 | 
            +
                    version: '0'
         | 
| 48 48 | 
             
              type: :runtime
         | 
| 49 49 | 
             
              prerelease: false
         | 
| 50 50 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 51 | 
             
                requirements:
         | 
| 52 | 
            -
                - -  | 
| 52 | 
            +
                - - ">="
         | 
| 53 53 | 
             
                  - !ruby/object:Gem::Version
         | 
| 54 | 
            -
                    version:  | 
| 54 | 
            +
                    version: '0'
         | 
| 55 55 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 56 56 | 
             
              name: rake
         | 
| 57 57 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 58 58 | 
             
                requirements:
         | 
| 59 | 
            -
                - -  | 
| 59 | 
            +
                - - ">="
         | 
| 60 60 | 
             
                  - !ruby/object:Gem::Version
         | 
| 61 61 | 
             
                    version: '0'
         | 
| 62 62 | 
             
              type: :development
         | 
| 63 63 | 
             
              prerelease: false
         | 
| 64 64 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 65 65 | 
             
                requirements:
         | 
| 66 | 
            -
                - -  | 
| 66 | 
            +
                - - ">="
         | 
| 67 67 | 
             
                  - !ruby/object:Gem::Version
         | 
| 68 68 | 
             
                    version: '0'
         | 
| 69 | 
            -
            description: ssh connections | 
| 69 | 
            +
            description: Manage ssh connections
         | 
| 70 70 | 
             
            email:
         | 
| 71 | 
            -
            - jschmid@suse.com | 
| 71 | 
            +
            - jschmid@suse.com
         | 
| 72 72 | 
             
            executables:
         | 
| 73 73 | 
             
            - sshm
         | 
| 74 74 | 
             
            extensions: []
         | 
| 75 75 | 
             
            extra_rdoc_files: []
         | 
| 76 76 | 
             
            files:
         | 
| 77 | 
            -
            - .gitignore
         | 
| 78 | 
            -
            - .idea/encodings.xml
         | 
| 79 | 
            -
            - .idea/misc.xml
         | 
| 80 | 
            -
            - .idea/modules.xml
         | 
| 81 | 
            -
            - .idea/scopes/scope_settings.xml
         | 
| 82 | 
            -
            - .idea/ssh-manager.iml
         | 
| 83 | 
            -
            - .idea/vcs.xml
         | 
| 84 | 
            -
            - .rspec
         | 
| 77 | 
            +
            - ".gitignore"
         | 
| 78 | 
            +
            - ".idea/encodings.xml"
         | 
| 79 | 
            +
            - ".idea/misc.xml"
         | 
| 80 | 
            +
            - ".idea/modules.xml"
         | 
| 81 | 
            +
            - ".idea/scopes/scope_settings.xml"
         | 
| 82 | 
            +
            - ".idea/ssh-manager.iml"
         | 
| 83 | 
            +
            - ".idea/vcs.xml"
         | 
| 84 | 
            +
            - ".rspec"
         | 
| 85 85 | 
             
            - Gemfile
         | 
| 86 86 | 
             
            - LICENSE
         | 
| 87 87 | 
             
            - README.md
         | 
| @@ -100,7 +100,7 @@ files: | |
| 100 100 | 
             
            - ssh-manager.gemspec
         | 
| 101 101 | 
             
            homepage: https://rubygems.org/profiles/jschmid
         | 
| 102 102 | 
             
            licenses:
         | 
| 103 | 
            -
            -  | 
| 103 | 
            +
            - MIT
         | 
| 104 104 | 
             
            metadata: {}
         | 
| 105 105 | 
             
            post_install_message: 
         | 
| 106 106 | 
             
            rdoc_options: []
         | 
| @@ -108,20 +108,20 @@ require_paths: | |
| 108 108 | 
             
            - lib
         | 
| 109 109 | 
             
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 110 110 | 
             
              requirements:
         | 
| 111 | 
            -
              - -  | 
| 111 | 
            +
              - - ">="
         | 
| 112 112 | 
             
                - !ruby/object:Gem::Version
         | 
| 113 113 | 
             
                  version: '0'
         | 
| 114 114 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 115 115 | 
             
              requirements:
         | 
| 116 | 
            -
              - -  | 
| 116 | 
            +
              - - ">="
         | 
| 117 117 | 
             
                - !ruby/object:Gem::Version
         | 
| 118 118 | 
             
                  version: '0'
         | 
| 119 119 | 
             
            requirements: []
         | 
| 120 120 | 
             
            rubyforge_project: 
         | 
| 121 | 
            -
            rubygems_version: 2. | 
| 121 | 
            +
            rubygems_version: 2.4.5
         | 
| 122 122 | 
             
            signing_key: 
         | 
| 123 123 | 
             
            specification_version: 4
         | 
| 124 | 
            -
            summary: manage and connect
         | 
| 124 | 
            +
            summary: manage and connect ssh
         | 
| 125 125 | 
             
            test_files:
         | 
| 126 126 | 
             
            - spec/client_spec.rb
         | 
| 127 127 | 
             
            - spec/spec_helper.rb
         |