Sha256: dd25aa0c30b1e9274581a6664e6cd24061d38408523ca21f136f5e0894ece09f
Contents?: true
Size: 889 Bytes
Versions: 11
Compression:
Stored size: 889 Bytes
Contents
# frozen_string_literal: true module Groundskeeper # Wraps ssh executable. class Ssh COMMAND = "ssh" DEFAULT_CONNECT_TIMEOUT_IN_S = 5 # ssh arguments CONNECT_WITH_TIMEOUT = "-o ConnectTimeout=#{DEFAULT_CONNECT_TIMEOUT_IN_S}".freeze REMOTE_ECHO = "%<options>s %<username>s@%<domain_name>s \"echo 'groundskeeper'\"" attr_reader :domain_name, :ssh, :username def self.build(username, domain_name) new Executable.new(COMMAND), username, domain_name end def initialize(ssh, username, domain_name) @ssh = ssh @username = username @domain_name = domain_name end def can_connect? ssh.execute(format(REMOTE_ECHO, options: CONNECT_WITH_TIMEOUT, username: username, domain_name: domain_name)).strip == "groundskeeper" end end end
Version data entries
11 entries across 11 versions & 1 rubygems