Sha256: 658e6d16559f794ba4b23c1e4c6cdb670ba062897ce2accf6d5be988c6c4a034

Contents?: true

Size: 1.75 KB

Versions: 2

Compression:

Stored size: 1.75 KB

Contents

require 'sequel'
require 'fileutils'

module SSH
  module Manager
    class Database

      FileUtils.mkdir_p("#{File.join(ENV['HOME'])}/.config/sshm/") unless Dir.exists?("#{ENV['HOME']}/.config/sshm")
      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'))

      @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, :note, :group])
      end

      def add_new_connection(ip, user='root', hostname='', port=22, note='', created_at, option, count, group, last_time)
        @connections.insert(:ip => ip, :user => user, :hostname => hostname, :port => port, :note => note, :created_at => created_at, :options => option, :group => group, :count => count, :last_time => last_time)
      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), @connections.where(:group => term), @connections.where(:options => term)
      end


    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ssh-manager-1.0.0 lib/ssh/manager/db.rb
ssh-manager-0.0.9 lib/ssh/manager/db.rb