#! /usr/bin/env python

#############################################################
#                                                           #
#   Author: Nicolas Joly                                    #
#   Organization:'Biological Software and Databases' Group, #
#                Institut Pasteur, Paris.                   #
#   Distributed under GPLv2 Licence. Please refer to the    #
#   COPYING.LIB document.                                   #
#                                                           #
#############################################################

import os, sys, time

MOBYLEHOME = None
if os.environ.has_key('MOBYLEHOME'):
  MOBYLEHOME = os.environ['MOBYLEHOME']
if not MOBYLEHOME:
  sys.exit('MOBYLEHOME must be defined in your environment')

sys.path.append(os.path.join(MOBYLEHOME,'Src'))

import Mobyle.ConfigManager
import Mobyle.Utils

cfg = Mobyle.ConfigManager.Config()
adm = cfg.admindir()
lst = os.listdir(adm)

for job in lst:
  fil = os.path.join(adm,job)
  if not os.path.isfile(fil) or job[0] == '.': continue
  dat = Mobyle.Utils.Admin(fil)

  print "%s" % ("-"*80)

  jid = dat.getJobID()
  if jid == None:
    print "Unknown job %s" % job
    continue
  key = jid.split(os.path.sep)[-1]
  bat = dat.getBatch()
  que = dat.getQueue()
  sta = Mobyle.Utils.getStatus(jid)
  print "%s -- %s/%s -- %s" % (key,bat,que,sta)

  nam = dat.getJobName()
  ema = dat.getEmail()
  tim = time.strftime("%x %X",dat.getDate())
  adr = dat.getRemote()
  print "%s -- %s -- %s -- %s" % (nam,ema,tim,adr)

  fil = os.path.join(cfg.results_path(),nam,key,'.command')
  fh = open(fil)
  cmd = fh.readline().strip()
  fh.close()
  print "%s" % cmd

sys.exit(0)
