Sha256: a088044099d4f81ed285388eaf3263a19c0d17754702551035e7c88fb3449662

Contents?: true

Size: 1.99 KB

Versions: 4

Compression:

Stored size: 1.99 KB

Contents

require "tropo_tail/version"

#module TropoTail
#end

require 'net/ftp'
require 'colorize'

class TropoTail

  def initialize
    @ftp = Net::FTP.new('ftp.tropo.com')
    run
    @ftp.login(@username, @password)
    @ftp.chdir('logs')
    get_latest
    if @filename.nil?
      puts "No new logs"
    else
      tail
    end
  end

  def run
    puts "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
    puts "Please type your Tropo Username..."
    @username = gets.chomp
    begin
      puts "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
      puts "Please enter your Tropo Password"
      system 'stty -echo'
      @password = gets.chomp
      system 'stty echo'
    rescue
      system 'stty echo'
      exit
    end
    puts "Input 1 for full Tropo logs or 2 for truncated logs"
    @log_display = gets.chomp
  end

  def get_latest
    @ftp.list.each do |file|
      if file[-4..-1] == ".txt"
        @filename = file[-19..-1]
      end
    end
  end

  def tail
    maxline = 0
    orig_log = @filename
    while 0 < 1
      get_latest
      if orig_log != @filename
        maxline = 0
        orig_log = @filename
      end
      linecount = 0
      @ftp.gettextfile(@filename, nil) do |line|
        info = /(?<=PRISM )(\d{7})(\/)(\d{7})(\/)(\w{32}\/|0)(\/)(\w{32})(\/)(1)(\/)(\S{1,50}\/)(\[\S{1,50}\])/.match(line).to_s.yellow
        linecount += 1
        if linecount > maxline
          maxline = linecount
          if @log_display == "1"
            puts "#{line[0..19].blue}#{line[21..50].yellow} #{info}#{line[(info.length + 38)..-1]}"
          elsif @log_display == "2"
            puts "#{line[0..19].blue} #{line[(info.length + 38)..-1]}"
          else
            puts "invalid log display option"
            return false
          end
        end
      end
      sleep 3
    end
  end

  def log_line_break
    Thread.new do
      while 0 < 1
        char = STDIN.getc
        if char == "\r"
          puts ""
        end
      end
    end
  end

end

tt = TropoTail.new

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
tropo_tail-0.2.2 lib/tropo_tail.rb
tropo_tail-0.2.1 lib/tropo_tail.rb
tropo_tail-0.2.0 lib/tropo_tail.rb
tropo_tail-0.1.0 lib/tropo_tail.rb