Source code for keyup.keyconfig

"""
Summary:
    Display module of configuration file contents

"""

import os
import sys
import json
from libtools.js import export_iterobject
from keyup import configuration
from keyup.statics import CONFIG_SCRIPT, local_config
from keyup.script_utils import debug_mode


try:
    from keyup.oscodes_unix import exit_codes
    splitchar = '/'
except Exception:
    from keyup.oscodes_win import exit_codes    # non-specific os-safe codes
    splitchar = '\\'


[docs]def display_content(data_object, halt=False): """ Summary: Display contents of object correctly whether display on a terminal (tty) or redirected to a file """ try: if is_tty(): export_iterobject(data_object, logging=False) else: print(json.dumps(data_object, indent=4)) except Exception: print(data_object) if halt: sys.exit(0) return True
[docs]def is_tty(): """ Summary: Determines if output is displayed to the screen or redirected Returns: True if tty terminal | False is redirected, TYPE: bool """ return sys.stdout.isatty()
[docs]def option_configure(debug=False, path=None): """ Summary: Initiate configuration menu to customize keyup runtime options. Console script ```keyconfig``` invokes this option_configure directly in debug mode to display the contents of the local config file (if exists) Args: :path (str): full path to default local configuration file location :debug (bool): debug flag, when True prints out contents of local config file Returns: TYPE (bool): Configuration Success | Failure """ if CONFIG_SCRIPT in sys.argv[0]: debug = True # set debug mode if invoked from CONFIG_SCRIPT if path is None: path = local_config['PROJECT']['CONFIG_PATH'] if debug: if os.path.isfile(path): display_content(data_object=local_config, halt=True) else: msg = """ Local config file does not yet exist. Run: $ keyup --configure """ debug_mode( header=msg, data_object={'CONFIG_PATH': path}, halt=True ) r = configuration.init(debug, path) return r