class Travis::CLI::Logs
def check_websocket
def check_websocket require 'websocket-native' if stream? rescue LoadError => e raise e if e.respond_to?(:path) and e.path != 'websocket-native' info "speed up log streaming by installing the websocket-native gem" end
def delete_log(job)
def delete_log(job) unless force? error "not deleting logs without --force" unless interactive? error "aborted" unless danger_zone? "Do you really want to delete the build log for #{color(job.inspect_info, :underline)}?" end warn "deleting log for #{color(job.inspect_info, [:bold, :info])}" job.delete_log(reason || {}) end
def display_log(job)
def display_log(job) info "displaying logs for #{color(job.inspect_info, [:bold, :info])}" return print_log(job.log.body) unless stream? job.log.body { |part| print_log(part) } ensure print "\e[0m" if interactive? end
def job(number)
def job(number) number = last_build.number + number if number.start_with? '.' job = super(number) || build(number) || branch(number) job = job.jobs.first if job.respond_to? :jobs job end
def print_log(part)
def print_log(part) print interactive? ? encoded(part) : clean(part) end
def run(number = last_build.number)
def run(number = last_build.number) self.stream = true if stream.nil? job ||= job(number) || error("no such job ##{number}") delete ? delete_log(job) : display_log(job) end
def setup
def setup super check_websocket end