diff options
Diffstat (limited to 'bin/gse.py')
-rwxr-xr-x | bin/gse.py | 271 |
1 files changed, 177 insertions, 94 deletions
@@ -1,104 +1,76 @@ -#!/usr/bin/env python3.6 - -def _call_main(): - # Essential libraries - import os, sys - from os import system, getcwd - from sys import argv, exit - - # Export current working category - CWORKDIR = getcwd() - - if CWORKDIR in '/usr/bin' and os.path.isfile('/usr/lib64/gse/gse'): - # If the project has been installed to root - #prnt("system") # Exists only: for testing - CWORKDIR = '/usr/lib64/gse' - CGSE = CWORKDIR + '/gse.py' - CCONFDIR = CWORKDIR + '/config.d' - CDISTDIR = '/var/tmp/gse/dist.d' - CLOCALLG = CWORKDIR + '/local' - CLOGLG = '/var/log/gse' - CSYSROOT = '/home/gse' - CLOCALLIB = '/var/lib/gse' - CFUNCTIONS = CWORKDIR + 'scripts/pyfunctions' - - elif os.path.isdir(os.path.dirname(CWORKDIR)+'/.git'): - # If the project has been git cloned or simply copied to a location - CWORKDIR = os.path.dirname(CWORKDIR) - #print(CWORKDIR) # Exists only: for testing - CFUNCTIONS = CWORKDIR+'/scripts/pyfunctions' - CCONFDIR = CWORKDIR+'/config.d' - CDISTDIR = CWORKDIR+'/dist.d' - CLOCALLG = CWORKDIR+'/local' - CLOGLG = CWORKDIR+'/var/log' - CSYSROOT = CWORKDIR+'/sysroot' - CLOCALLIB = CWORKDIR+'/var/lib' - - - # Append new python path at CWORKDIR + /scripts/pyfunctions - sys.path.append(CFUNCTIONS) - - - # Simplle die function - from gseout import die - - # Import yellow, green, blue and purple color reports - from gseout import e_report, g_report, b_report, p_report - - # Cmdline argument's function +#!/usr/bin/env python3.4 + +def _call_main(_gpyfunc_): + ''' + Main function + This function: + Detects the project's directory and exports it with it's sub-dirs + Exports the given arguments and options + Exports the build sequence + Brings up the text/gui menu if given from the arguments + Last, enables the exported sequence (build process) + ''' + + # Simple die function and yellow, green, blue and purple color reports + from gpyfunctions.tools.gseout import die, e_report, g_report, b_report, p_report + + # Check target and export args def gse_args(): - if 'system' in argv[1:2]: + ''' + Exports the sequence variable + Calls _export_args which defines and exports the final arguments based on the sequence + ''' + + if any('system' in _tmp1 for _tmp1 in argv[1:]): sequence = "system" - elif 'controller' in argv[1:2]: + elif any('controller' in _tmp1 for _tmp1 in argv[1:]): sequence = "controller" - elif '-h' in argv[1:2] or '--help' in argv[1:2]: - sequence = "target" + elif any('-h' in _tmp1 for _tmp1 in argv[1:]) or any('--help' in _tmp2 for _tmp2 in argv[1:]): + # For missing target arguments and given help option. Call general args. + sequence = "help" + elif any('-V' in _tmp1 for _tmp1 in argv[1:]) or any('--version' in _tmp2 for _tmp2 in argv[1:]): + # For missing target arguments and given version option. Print version. + sequence = "version" else: - sequence = "err" + # Die for missing target and help opt + e_report("You must specify exactly one of: 'system' or 'controller' targets") + e_report("See gse -h or gse 5 for more info and gse 1 for options manpage") + die('') - # Check if base and controller are issues at the same time. If yes, exit with error - if sequence in 'system' or sequence in 'controller': - if any('system' in item1 for item1 in argv[1:]) and any ("controller" in item2 for item2 in argv[1:]): - die("Error: System and Controller arguments can not be issued at the same time. " + - "Only one operating at a given time can be supported.") + # # Check if base and controller are issues at the same time. If yes, exit with error + # if sequence in 'system' or sequence in 'controller': + # if any('system' in item1 for item1 in argv[1:]) and ("controller" in item2 for item2 in argv[1:]): + # die("Error: System and Controller arguments can not be issued at the same time. " + + # "Only one operating at a given time can be supported.") if sequence == "system": # Export arguments for system sequence - from arg_opt import _export_args + from gpyfunctions.tools.librarium import _export_args - b_report("System sequence enabled") + # Evaluate the arguments + p_report("System sequence enabled") args = _export_args(sequence) del _export_args - from arg_opt import _check_args - _check_args(args) - - del _check_args - - elif sequence == 'controller': # Export arguments for controller sequence - from arg_opt import _export_args + from gpyfunctions.tools.librarium import _export_args - b_report("Controller sequence enabled") + # Evaluate the arguments + p_report("Controller sequence enabled") args = _export_args(sequence) del _export_args - from arg_opt import _ct_check_args - _ct_check_args(args) - - del _ct_check_args - - elif sequence == 'target': - from arg_opt import _export_args - + elif sequence == 'help': + # Print --help + from gpyfunctions.tools.librarium import _export_args + args = _export_args(sequence) + elif sequence == 'version': + # Print --version + from gpyfunctions.tools.librarium import _export_args args = _export_args(sequence) - elif sequence == "err": - e_report("You must specify exactly one of: 'system' or 'controller' targets as the first argument") - e_report("See gse -h or gse 5 for more info and gse 1 for options manpage") - die('') return args, sequence @@ -110,7 +82,7 @@ def _call_main(): del gse_args # Import dist check function - from preliminary import _is_gentoo + from gpyfunctions.preliminary import _is_gentoo # Check the output. In case of a fail, issue warning and abort if _is_gentoo() == 0: @@ -128,7 +100,7 @@ def _call_main(): del _is_gentoo # Import super user check function - from preliminary import _is_su + from gpyfunctions.preliminary import _is_su # Pass if super user, issue warning if not and abort if _is_su() == 0: @@ -142,31 +114,142 @@ def _call_main(): del _is_su - # If args.mm, initiate text menu - if args.mm: - from preliminary import _call_menu - _ex_stat = _call_menu(CWORKDIR, CFUNCTIONS, CCONFDIR, CDISTDIR) + if (args.mm or args.gmm): + # Check for mm && gmm conflict + if args.mm and args.gmm: + die("Error: Use one of [--mm/--gmm]") + + # If args.mm, initiate text menu + if args.mm: + from gpyfunctions.menu.txmen.gsetxf import _call_menu + _ex_stat = _call_menu(CWORKDIR, CFUNCTIONS, CCONFDIR, CDISTDIR) + + del _call_menu + + # if args.gmm, initiate GUI menu + if args.gmm: + from gpyfunctions.menu.portal.gportal import _gmm + _ex_stat = _gmm() + + del _gmm + + return _ex_stat + + elif sequence is "system" or sequence is "controller": + from gpyfunctions.tools.warp import warp + _ex_stat = warp(sequence, args, CWORKDIR, CCONFDIR, CLOCALLG) + + del warp + + return _ex_stat + else: + return 9 + +# EO_call_main + + +# Essential libraries +from sys import argv, exit +from os import path as ospath +from sys import path as syspath + +# Append gpyfunctions from /usr/lib64/gse/scripts/ +if ospath.isdir('/usr/lib64/gse/scripts/gpyfunctions'): + if ospath.isfile('/usr/lib64/gse/scripts/gpyfunctions/__init__.py'): + syspath.append('/usr/lib64/gse/scripts') + _gpyfunc_ = "sys" + +# Append gpyfunctions from git chase +elif ospath.isdir('../scripts/gpyfunctions'): + if ospath.isfile('../scripts/gpyfunctions/__init__.py'): + syspath.append("../scripts") + _gpyfunc_ = ".git" +else: + print("Could not locate gpy modules path") + exit(1) + +def __gse_mod_check(): + from sys import exit + + try: + import gpyfunctions + del gpyfunctions + + from gpyfunctions import preliminary + del preliminary + + from gpyfunctions.tools import gseout + del gseout + + from gpyfunctions.tools import librarium + del librarium + + from gpyfunctions.tools import warp + del warp + + from gpyfunctions.menu.txmen import gsub_men + del gsub_men + + from gpyfunctions.menu.txmen import gsetxmen + del gsetxmen + + from gpyfunctions.menu.txmen import gsetxf + del gsetxf + + from gpyfunctions.menu.portal import gportal + del gportal - del _call_menu + except ImportError: + raise + exit(1) + + print("\033[1;35mAll gse modules are healthy\033[0;0m\n") + - # if args.gmm, initiate gui menu - if args.gmm: - from gportal import _gmm - _ex_stat = _gmm() +# Check gpy modules. This function exists only in the experimental phase. +__gse_mod_check() - del _gmm +del __gse_mod_check, ospath, syspath - return _ex_stat +# Import function for exporting CWORDKIR, ... PATHS +from gpyfunctions.preliminary import _gse_path + +# Export the paths from _gse_path() +CWORKDIR, CGSE, CFUNCTIONS, CCONFDIR, \ +CDISTDIR, CLOCALLG, CLOGLG, CSYSROOT, \ +CLOCALLIB = _gse_path(_gpyfunc_) + +del _gse_path # Main function if __name__ == "__main__": - _ex_stat = _call_main() + try: + _ex_stat = _call_main(_gpyfunc_) + + except KeyboardInterrupt: + from gpyfunctions.tools.gseout import e_report + e_report("\n\nKeyboard interrupt detected.\n") + exit(1) + + except EOFError: + from gpyfunctions.tools.gseout import b_report + b_report("\n\nEOFError. Maybe CTRL-D?\nIf not, please report this bug!\n") + exit(1) if _ex_stat == 0: print("Success") exit(0) + + elif _ex_stat == 9: + print("No valid sequence") + exit(9) + else: print("Fail") exit(1) +else: + print("Not Main") + exit(1) + |