Class: AccessLogs

Inherits:
Thor::Group
  • Object
show all
Includes:
Thor::Actions
Defined in:
lib/common/access_logs.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.source_rootObject



6
7
8
# File 'lib/common/access_logs.rb', line 6

def self.source_root
  File.dirname(__FILE__)
end

Instance Method Details

#get_logsObject



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/common/access_logs.rb', line 10

def get_logs
  namespace, project = ConfigHelper.get_namespace_and_project

  Signal.trap("INT") {
    puts "\n\nBye bye! 🙏\n\n"
    exit
  }

  last_since_time = nil

  while true do
    success, res = Infra.get_logs(project, namespace, last_since_time)
    if success
      last_log_line = res['logs'].split("\n").last
      since_time = last_log_line ? last_log_line.split.first : nil
      has_new_logs = last_since_time != since_time
      last_since_time = has_new_logs ? since_time : last_since_time
      say res['logs'] if has_new_logs
    else
      say "⚠️  Error getting logs. Reason: #{res['error']}" unless success
    end
    sleep 2
  end
end