Files
linuxcncAllWasm/lib/python/gladevcp/gladevcppath.py
2026-08-20 06:17:39 +08:00

76 lines
2.6 KiB
Python

import os
import sys
# Set up logging
from . import logger
LOG = logger.getLogger(__name__)
# Force the log level for this module
# LOG.setLevel(logger.VERBOSE) # One of VERBOSE, DEBUG, INFO, WARNING, ERROR, CRITICAL
def search(filename, postfix):
# widget directory
here = os.path.dirname(os.path.realpath(__file__))
RIP_FLAG = bool(os.environ.get('LINUXCNC_RIP_FLAG', False))
LOG.debug(f'RIP environmental variable flag: {RIP_FLAG}')
if RIP_FLAG:
HOMEPATH = os.environ.get('EMC2_HOME', None)
else:
HOMEPATH = os.environ.get('LINUXCNC_HOME', None)
# fallback until the RIP_FLAG is common
if HOMEPATH is None:
HOMEPATH = os.environ.get('EMC2_HOME', None)
LOG.debug('Linuxcnc Home directory found in environmental variable: {}'.format(HOMEPATH))
PANELDIR = os.path.join(here,'builtin-panels')
BASENAME = os.path.splitext(os.path.basename(filename))[0]
# base path (includes any extra path commands
BASEPATH = os.path.splitext(filename)[0]
LOG.debug(f'Passed name={filename}, BASENAME={BASENAME} BASEPATH={BASEPATH}')
# look for custom ui file
WORKINGDIR = os.getcwd()
LOG.verbose('Working directory: {}'.format(WORKINGDIR))
if postfix == 1:
fn = "{}.glade".format(BASEPATH)
name = '.glade'
elif postfix == 2:
fn = "{}.py".format(BASEPATH)
name = '.py'
local = []
local.append( os.path.join(WORKINGDIR,'gladevcp/builtin-panels' ,BASEPATH, fn))
local.append( os.path.join(WORKINGDIR, fn))
defaultui = os.path.join(PANELDIR, BASEPATH, fn)
for localfn in local:
LOG.debug("Checking for {} in: yellow<{}>".format(name, localfn))
if os.path.exists(localfn):
LOG.info("bggreen<Using LOCAL {} file from:> yellow<{}>".format(name, localfn))
XML = localfn
break
# if no break
else:
LOG.debug("Checking for {} in: yellow<{}>".format(name,defaultui))
if os.path.exists(defaultui):
LOG.info("bggreen<Using DEFAULT {} file from:> yellow<{}>".format(name, defaultui))
XML = defaultui
else:
# error
XML = None
LOG.info(f"No {name} file found.")
return XML
def find_panel_dirs():
here = os.path.dirname(os.path.realpath(__file__))
PANELDIR = os.path.join(here,'builtin-panels')
dirs = next(os.walk(PANELDIR))[1]
return dirs