mirror of
https://github.com/Klipper3d/klipper.git
synced 2025-11-02 03:16:02 +01:00
util: Introduce _try_read_file() helper
Introduce a helper function to read the contents of a file and use that helper throughout util.py . Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
@@ -51,6 +51,15 @@ def create_pty(ptyname):
|
||||
# Helper code for extracting mcu build info
|
||||
######################################################################
|
||||
|
||||
def _try_read_file(filename, maxsize=32*1024):
|
||||
try:
|
||||
with open(filename, 'r') as f:
|
||||
return f.read(maxsize)
|
||||
except (IOError, OSError) as e:
|
||||
logging.debug("Exception on read %s: %s", filename,
|
||||
traceback.format_exc())
|
||||
return None
|
||||
|
||||
def dump_file_stats(build_dir, filename):
|
||||
fname = os.path.join(build_dir, filename)
|
||||
try:
|
||||
@@ -66,20 +75,14 @@ def dump_mcu_build():
|
||||
build_dir = os.path.join(os.path.dirname(__file__), '..')
|
||||
# Try to log last mcu config
|
||||
dump_file_stats(build_dir, '.config')
|
||||
try:
|
||||
f = open(os.path.join(build_dir, '.config'), 'r')
|
||||
data = f.read(32*1024)
|
||||
f.close()
|
||||
data = _try_read_file(os.path.join(build_dir, '.config'))
|
||||
if data is not None:
|
||||
logging.info("========= Last MCU build config =========\n%s"
|
||||
"=======================", data)
|
||||
except:
|
||||
pass
|
||||
# Try to log last mcu build version
|
||||
dump_file_stats(build_dir, 'out/klipper.dict')
|
||||
try:
|
||||
f = open(os.path.join(build_dir, 'out/klipper.dict'), 'r')
|
||||
data = f.read(32*1024)
|
||||
f.close()
|
||||
data = _try_read_file(os.path.join(build_dir, 'out/klipper.dict'))
|
||||
data = json.loads(data)
|
||||
logging.info("Last MCU build version: %s", data.get('version', ''))
|
||||
logging.info("Last MCU build tools: %s", data.get('build_versions', ''))
|
||||
@@ -111,13 +114,8 @@ setup_python2_wrappers()
|
||||
######################################################################
|
||||
|
||||
def get_cpu_info():
|
||||
try:
|
||||
f = open('/proc/cpuinfo', 'r')
|
||||
data = f.read()
|
||||
f.close()
|
||||
except (IOError, OSError) as e:
|
||||
logging.debug("Exception on read /proc/cpuinfo: %s",
|
||||
traceback.format_exc())
|
||||
data = _try_read_file('/proc/cpuinfo', maxsize=1024*1024)
|
||||
if data is None:
|
||||
return "?"
|
||||
lines = [l.split(':', 1) for l in data.split('\n')]
|
||||
lines = [(l[0].strip(), l[1].strip()) for l in lines if len(l) == 2]
|
||||
@@ -126,28 +124,18 @@ def get_cpu_info():
|
||||
return "%d core %s" % (core_count, model_name)
|
||||
|
||||
def get_device_info():
|
||||
try:
|
||||
path = '/proc/device-tree/model'
|
||||
if not os.access(path, os.F_OK):
|
||||
path = "/sys/class/dmi/id/product_name"
|
||||
if not os.access(path, os.F_OK):
|
||||
return "?"
|
||||
f = open(path, 'r')
|
||||
data = f.read()
|
||||
f.close()
|
||||
except (IOError, OSError) as e:
|
||||
logging.debug("Exception on read /proc/device-tree/model: %s",
|
||||
traceback.format_exc())
|
||||
return "?"
|
||||
data = _try_read_file('/proc/device-tree/model')
|
||||
if data is None:
|
||||
data = _try_read_file("/sys/class/dmi/id/product_name")
|
||||
if data is None:
|
||||
return "?"
|
||||
return data.rstrip(' \0')
|
||||
|
||||
def get_version_from_file(klippy_src):
|
||||
try:
|
||||
with open(os.path.join(klippy_src, '.version')) as h:
|
||||
return h.read().rstrip()
|
||||
except IOError:
|
||||
pass
|
||||
return "?"
|
||||
data = _try_read_file(os.path.join(klippy_src, '.version'))
|
||||
if data is None:
|
||||
return "?"
|
||||
return data.rstrip()
|
||||
|
||||
def _get_repo_info(gitdir):
|
||||
repo_info = {"branch": "?", "remote": "?", "url": "?"}
|
||||
|
||||
Reference in New Issue
Block a user