Skip to content

Commit

Permalink
Replacing function parse_dtbo and function dtbo_is_compatible with py…
Browse files Browse the repository at this point in the history
…thon scripts
  • Loading branch information
CodeChenL committed Jan 8, 2024
1 parent d730c15 commit 6918f5e
Show file tree
Hide file tree
Showing 5 changed files with 63 additions and 60 deletions.
13 changes: 0 additions & 13 deletions src/usr/lib/rsetup/cli/u-boot-menu.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,6 @@
# shellcheck source=src/usr/lib/rsetup/mod/overlay.sh
source "/usr/lib/rsetup/mod/overlay.sh"

PARSE_DTBO_METADATA="/usr/lib/rsetup/mod/parse_dtbo_metadata"
DTBO_IS_COMPATIBLE="/usr/lib/rsetup/mod/dtbo_compatible"

ALLOWED_RCONFIG_FUNC+=("load_u-boot_setting")

check_overlay_conflict_init() {
Expand Down Expand Up @@ -135,13 +132,3 @@ rebuild_overlays() {
mv "$old_overlays" "${old_overlays}_old"
mv "$new_overlays" "$old_overlays"
}

parse_dtbo() {
local keyword="$1" default="$2" Full="$3"
shift 3
"$PARSE_DTBO_METADATA" -c "$keyword" -e "$default" "$Full" -f "$@"
}

dtbo_is_compatible() {
"$DTBO_IS_COMPATIBLE" "$@"
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,8 @@ yaml.CLoader.add_constructor('!u8', yaml.constructor.FullConstructor.construct_y

for file in files:
metadata=yaml.load(os.popen("dtc -I dtb -O dts " + file + " 2>/dev/null | dtc -I dts -O yaml 2>/dev/null").read(), Loader=yaml.CLoader)[0]["metadata"]
if is_compatible(file,metadata,compatible):
try:
if is_compatible(file, metadata, compatible):
print(file)
except KeyError:
print(file)
57 changes: 57 additions & 0 deletions src/usr/lib/rsetup/mod/parse_dtbo
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-

from sys import argv, stdin, stderr
import yaml, re, os, argparse

def status(file):
if ".disabled" in os.path.splitext(file)[-1]:
print("OFF")
else:
print("ON")
def basename(file):
print(re.match(r'(.+\.dtbo)',os.path.basename(file)).group(1))

def short_print(metadata):
print(metadata[args.keyword][0].replace("\0", "\n"))

def short_error_print(file):
if args.e == "file":
basename(file)
else:
print(args.e)

def long_print(metadata,file):
short_print(metadata)
status(file)
basename(file)

def long_error_print(file):
if args.e == "file":basename(file)
else:
print(args.e)
status(file)
basename(file)
parser = argparse.ArgumentParser(description='Parse dtbo metadata data')
parser.add_argument('-F', action='store_true', default=False, help='Control print DTBO title,enable status and DTBO filename')
parser.add_argument('-e', metavar='string', default="null", help='error default string')
parser.add_argument('keyword', metavar='string', help='Keyword')
parser.add_argument('filename', nargs='+', metavar='filename', help='DTBO filename list')

args = parser.parse_args()

yaml.CLoader.add_constructor('!u8', yaml.constructor.FullConstructor.construct_yaml_seq)
if args.F:
for file in args.filename:
try:
metadata=yaml.load(os.popen("dtc -I dtb -O dts " + file + " 2>/dev/null | dtc -I dts -O yaml 2>/dev/null").read(), Loader=yaml.CLoader)[0]["metadata"]
long_print(metadata,file)
except Exception as e:
long_error_print(file)
else:
for file in args.filename:
try:
metadata=yaml.load(os.popen("dtc -I dtb -O dts " + file + " 2>/dev/null | dtc -I dts -O yaml 2>/dev/null").read(), Loader=yaml.CLoader)[0]["metadata"]
short_print(metadata)
except Exception as e:
short_error_print(file)
46 changes: 0 additions & 46 deletions src/usr/lib/rsetup/mod/parse_dtbo_metadata

This file was deleted.

2 changes: 2 additions & 0 deletions src/usr/lib/rsetup/tui/main.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ source "/usr/lib/rsetup/tui/system/system.sh"
source "/usr/lib/rsetup/tui/task/task.sh"
source "/usr/lib/rsetup/tui/user/user.sh"

export PATH="$PATH:/usr/lib/rsetup/mod"

if $DEBUG
then
source "/usr/lib/rsetup/tui/test/test.sh"
Expand Down

0 comments on commit 6918f5e

Please sign in to comment.