Sha256: c1b26dd1885b457ec826f9d0fe522f218b7bf2f3f60a3df8dd0d0b48d62fe28e

Contents?: true

Size: 1.59 KB

Versions: 3

Compression:

Stored size: 1.59 KB

Contents

require 'sequel'
require 'fileutils'

module SSH
  module Manager
    class Database

      FileUtils.cp ("#{File.dirname(__FILE__)}/../../../config/sshm.db"), ("#{File.join(Dir.home)}" + '/.config/sshm/') unless File.exists?(("#{File.join(Dir.home)}" + '/.config/sshm/sshm.db'))
      FileUtils.mkdir_p("#{File.join(ENV['HOME'])}/.config/sshm/") unless Dir.exists?("#{ENV['HOME']}/.config/sshm")

      @path = "#{File.join(ENV['HOME'])}/.config/sshm"
      DATABASE = Sequel.connect("sqlite://#{@path}/sshm.db")

      attr_accessor :connections

      def initialize
        @connections= DATABASE.from(:connection)
      end

      def get_connection_data
        @connections.map([:ip, :user, :hostname, :port, :note])
      end

      def add_new_connection(ip, user='root', hostname='', port=22, note='')
        # default params are currently useless FIXME
        @connections.insert(:ip => ip, :user => user, :hostname => hostname, :port => port, :note => note)
      end

      def delete_connection(ip)
        # add && :user => user to ensure deletion
        @connections.where(:ip => ip).delete
      end

      def update_connection(ip, user, hostname, port, note)
        @connections.where(:ip => ip).update(:user => user, :hostname => hostname, :port => port, :note => note)
      end

      def search_for(term)
        # check online: search for 'contains' not for complete matching
        return  @connections.where(:ip => term),  @connections.where(:user => term), @connections.where(:hostname => term), @connections.where(:port => term), @connections.where(:note => term)
      end

    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
ssh-manager-0.0.6 lib/ssh/manager/db.rb
ssh-manager-0.0.5 lib/ssh/manager/db.rb
ssh-manager-0.0.4 lib/ssh/manager/db.rb