#!/usr/bin/env python

import argparse
import json
import os
from argparse import ArgumentParser, ArgumentError, FileType

from path_pipe_conf_tools.Tools import ConfigDirectory

if __name__ == '__main__':
  parser = ArgumentParser(description="Outputs details of all of the pathogen jobs in the pipeline")

  parser.add_argument('config_dir', type=str, 
                      help="Config directory to be searched for job trackers (also searches child dircectories)")
  parser.add_argument('--output_file', '-o', type=FileType('w'), default=None, 
                      help="File to output results to (defaults to stdout)")
  
  args = parser.parse_args()
  if not os.path.isdir(args.config_dir):
    parser.error("%s is not a directory" % args.config_dir)
  config = ConfigDirectory()
  output = json.dumps(config.to_dict(args.config_dir), sort_keys=True, 
                      indent=2, separators=(',', ': '))
  if args.output_file:
    args.output_file.write(output)
  else:
    print output
