#!/usr/bin/python

import traceback
import sys, os
if 'GEET_DEBUG' in os.environ:
    program_path = sys.path[0]
    sys.path.insert(0, os.path.join(program_path, 'modules'))
from subprocess import Popen, PIPE
from geet_client import Builder

if len(sys.argv) != 2:
    print 'Usage %s list|<jid>' % sys.argv[0]
    sys.exit(1)

class PagerOuter:
    def __init__(self):
        if sys.stdout.isatty():
            pager = os.environ.get('PAGER', 'less')
            try:
                self.outfile = os.popen(pager, 'w')
            except:
                self.outfile = sys.stdout
        else:
            self.outfile = sys.stdout
    def __getattr__(self, attr):
        return getattr(self.outfile, attr)

try:
    if sys.argv[1] == 'list':
        jobs_queue = Builder().getJobsQueue()
        for job in jobs_queue:
            print job
    else:
        jid = int(sys.argv[1])
        partNo = 0
        out = PagerOuter()
        while True:
            part = Builder().getLog(jid, partNo)
            out.write(part.text)
            if part.hasNext:
                partNo += 1
            else:
                break
except:
    print 'Error!'
    traceback.print_exc()
