#!/usr/bin/env python3

#        Copyright (C) 2015 Noa-Emil Nissinen (4shadoww)

import shutil
import distutils
import getopt
import sys
import os

def print_help():
	print("usage: -i <install> -u <uninstall> -h <help>")


def install():
	print("installing Hakku Framework")

	print("creating dictionary /usr/share/hakkuframework")

	if os.path.exists("/usr/share/hakkuframework/"):
		print("removing exist installion...")
		shutil.rmtree("/usr/share/hakkuframework/")

	try:

		os.mkdir("/usr/share/hakkuframework")

	except PermissionError:
		print("permission error: permission denied")
		return

	print("copying files...")
	shutil.copyfile("hakku", "/usr/share/hakkuframework/hakku")

	shutil.copyfile("license", "/usr/share/hakkuframework/license")
	shutil.copyfile("changelog", "/usr/share/hakkuframework/changelog")
	shutil.copyfile("readme", "/usr/share/hakkuframework/readme")

	shutil.copytree("core", "/usr/share/hakkuframework/core/")
	shutil.copytree("modules", "/usr/share/hakkuframework/modules/")

	print("writing bash script...")
	f = open("/usr/bin/hakku", "w")
	f.write("#!/bin/sh\n/usr/share/hakkuframework/hakku $@")
	f.close()

	print("giving executeable permissions...")
	os.system("chmod +x /usr/share/hakkuframework/hakku")
	os.system("chmod +x /usr/bin/hakku")

def uninstall():
	print("uninstalling Hakku Framework")

	print("removing Hakku Framework...")
	try:
		shutil.rmtree("/usr/share/hakkuframework/")
	except FileNotFoundError:
		pass

	except PermissionError:
		print("permission error: permission denied")
		return

	print("removing bash script...")
	try:
		os.remove("/usr/bin/hakku")
	except FileNotFoundError:
		pass

	print("Hakku Framework uninstalled successfully")

if __name__ == "__main__":
	if not os.geteuid() == 0:
		print("warning: no root access")

	if len(sys.argv[1:]) > 1:
		print("invalid argument")
		print_help()

	elif len(sys.argv[1:]) == 1:
		if sys.argv[1] == '-i':
			install()
		elif sys.argv[1] == '-u':
			uninstall()
		elif sys.argv[1] == '-h':
			print_help()
		else:
			print("invalid argument")
			print_help()
