#!/usr/bin/env python
# encoding: utf-8
"""
run_genmod.py

Script for annotating genetic models in variant files.

Created by Måns Magnusson on 2014-01-21.
Copyright (c) 2013 __MyCompanyName__. All rights reserved.
"""

from __future__ import print_function

import sys
import os
import click

from pprint import pprint as pp

from codecs import getwriter

import genmod

from genmod.commands import (build_annotation, annotate, analyze, 
                            summarize_variants, score_variants, genmod_sort)


from genmod import __version__


def print_version(ctx, param, value):
    """Callback function for printing version and exiting
    Args:
        ctx (object) : Current context
        param (object) : Click parameter(s)
        value (boolean) : Click parameter was supplied or not
    Returns:
        None:
    """
    if not value or ctx.resilient_parsing:
        return
    click.echo('genmod version: {0}'.format(__version__))
    ctx.exit()


###         This is the main script         ###

@click.group()
@click.option('--version',
                is_flag=True,
                callback=print_version,
                expose_value=False,
                is_eager=True
)
def run_genmod():
    """Tool for annotating and analyzing genetic variants in the vcf format.\n
        For more information, please run:
        genmod COMMAND --help \n
        """
    pass

run_genmod.add_command(build_annotation.build_annotation)
run_genmod.add_command(annotate.annotate)
run_genmod.add_command(analyze.analyze)
run_genmod.add_command(summarize_variants.summarize)
run_genmod.add_command(score_variants.score)
run_genmod.add_command(genmod_sort.sort)



if __name__ == '__main__':
    run_genmod()
