#!/bin/env python

import sys
from subprocess import call
import os
from cmdsignature.program import ProgramSignatureParser

def getScriptDir(file = __file__):
	return os.path.dirname(os.path.realpath(file))

if __name__ == "__main__":
	script_dir = getScriptDir(__file__)
	if script_dir.startswith("/usr/bin") or script_dir.startswith("/bin"):
		script_dir = "/usr/share/gofed"

	parser = ProgramSignatureParser(
		"gofed",
		"%s/cmd" % script_dir,
		description = "Automation of packaging of golang projects and analysis of Go ecosystem"
	)

	args = []
	if len(sys.argv) > 1:
		args = sys.argv[1:]

	plugin_directory = "%s/cmd" % script_dir
	plugins = filter(lambda l: l.endswith(".yml"), os.listdir(plugin_directory))
	plugins = map(lambda l: "%s/%s" % (plugin_directory, l), plugins)

	parser.parse(
		plugins,
		args
	)

	cmd = parser.signature()
	cmd = "PYTHONPATH=${PYTHONPATH:-/usr/share} %s" % cmd
	exit(call(cmd, shell=True))
