#!/usr/bin/env python

import os
import re
import sys

from wise import actions

all_tasks_module = [f for f in dir(actions) if re.match('wise_([\w_]+)', f)]
all_tasks = [m[len("wise_"):] for m in all_tasks_module]
all_tasks_desc = [getattr(actions, 'wise_' + task).USAGE.splitlines()[0] for task in all_tasks]
padding = max(map(len, all_tasks)) + 4
USAGE = '''Usage: wise TASK [OPTIONS]

Available tasks: 
%s''' % '\n'.join(["  %-*s%s" % (padding, t, d) for t, d in zip(all_tasks, all_tasks_desc)])

if len(sys.argv) < 2:
    print "Error: No task\n"
    print USAGE
    sys.exit(1)

task = sys.argv[1]

if task in all_tasks:
    sys.argv = sys.argv[1:]
    getattr(actions, 'wise_' + task).main()
else:
    print "Error: No task named '%s'\n" % task
    print USAGE
    sys.exit(1)
