Class: Lolipop::Mc::Starter::Rails::CheckItem::SSH

Inherits:
Base
  • Object
show all
Defined in:
lib/lolipop/mc/starter/rails/check_item/ssh.rb

Constant Summary

Constants inherited from Base

Base::NOCHECK, Base::SKIPCHECK

Instance Method Summary collapse

Methods inherited from Base

#desc, #dump_config, #initialize, #item_name, #load_config

Constructor Details

This class inherits a constructor from Lolipop::Mc::Starter::Rails::CheckItem::Base

Instance Method Details

#checkObject



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/lolipop/mc/starter/rails/check_item/ssh.rb', line 7

def check
  config = load_config
  ssh_command = config['ssh']

  if ssh_command != NOCHECK
    begin
      stdout = `#{ssh_command} hostname`
    rescue => e
      puts "SSHコマンドの実行に失敗しました。SSH接続の設定を確認してください #{e.message}"
      ssh_command = ''
    end
  end

  if [NOCHECK, ''].include?(ssh_command)
    prompt = TTY::Prompt.new(active_color: :cyan)
    ssh_command = prompt.ask('SSHコマンドを入力してください(マネージドクラウドのプロジェクト詳細に記載があります):')
    begin
      stdout = `#{ssh_command} hostname`
    rescue => e
      raise "SSHコマンドの実行に失敗しました。SSH接続の設定を確認してください #{e.message}"
    end
  end
  raise 'SSHコマンドの実行に失敗しました。入力したコマンドを確認してください' unless stdout.match(/^gitpush-ruby.+lolipop\.io/)
  config['ssh'] = ssh_command
  dump_config(config)
  "SSHコマンドの設定が完了しています [#{ssh_command}]"
end

#hintObject



35
36
37
38
39
40
41
42
43
# File 'lib/lolipop/mc/starter/rails/check_item/ssh.rb', line 35

def hint
  puts 'マネージドクラウドのプロジェクト詳細に `SSHコマンド` に記載があります'
  puts '例: `ssh -p 123456 [email protected]'
  puts ''
  puts 'もし `SSHコマンド` を入力してもSSHコマンドの実行失敗する場合は以下の点を確認してみてください'
  puts '- マネージドクラウドに公開鍵を設定しているか?'
  puts '- 秘密鍵を~/.ssh/に設置しているか?'
  puts '- ~/.ssh/config の設定をしているか?'
end