From a35dfac6d428ec402c71654bcde5be9edf051ff1 Mon Sep 17 00:00:00 2001 From: fujr Date: Fri, 11 Apr 2025 16:45:25 +0800 Subject: [PATCH] refactor: optimized vendor script loading mechanism by using dynamic_load.json --- .../root/usr/share/qmodem/modem_ctrl.sh | 30 +++++++------------ .../usr/share/qmodem/vendor/dynamic_load.json | 9 ++++++ 2 files changed, 19 insertions(+), 20 deletions(-) create mode 100644 luci/luci-app-qmodem/root/usr/share/qmodem/vendor/dynamic_load.json diff --git a/luci/luci-app-qmodem/root/usr/share/qmodem/modem_ctrl.sh b/luci/luci-app-qmodem/root/usr/share/qmodem/modem_ctrl.sh index 4b6850f..2e32e4b 100755 --- a/luci/luci-app-qmodem/root/usr/share/qmodem/modem_ctrl.sh +++ b/luci/luci-app-qmodem/root/usr/share/qmodem/modem_ctrl.sh @@ -9,30 +9,20 @@ platform=$(uci get qmodem.$config_section.platform) define_connect=$(uci get qmodem.$config_section.define_connect) modem_path=$(uci get qmodem.$config_section.path) modem_slot=$(basename $modem_path) + [ -z "$define_connect" ] && { define_connect="1" } -case $vendor in - "quectel") - . /usr/share/qmodem/vendor/quectel.sh - ;; - "fibocom") - . /usr/share/qmodem/vendor/fibocom.sh - ;; - "sierra") - . /usr/share/qmodem/vendor/sierra.sh - ;; - "simcom") - . /usr/share/qmodem/vendor/simcom.sh - ;; - "meig") - . /usr/share/qmodem/vendor/meig.sh - ;; - *) - . /usr/share/qmodem/generic.sh - ;; -esac +#please update dynamic_load.json to add new vendor +vendor_script_prefix="/usr/share/qmodem/vendor" +dynamic_load_json="$vendor_script_prefix/dynamic_load.json" +vendor_file="${vendor_script_prefix}/`jq -r --arg vendor $vendor '.[$vendor]' $dynamic_load_json`" +if [ -z "$vendor" ] || [ ! -f "$vendor_file" ]; then + logger -t modem_ctrl "vendor $vendor not support" + exit 1 +fi +. $vendor_file try_cache() { cache_timeout=$1 diff --git a/luci/luci-app-qmodem/root/usr/share/qmodem/vendor/dynamic_load.json b/luci/luci-app-qmodem/root/usr/share/qmodem/vendor/dynamic_load.json new file mode 100644 index 0000000..9343867 --- /dev/null +++ b/luci/luci-app-qmodem/root/usr/share/qmodem/vendor/dynamic_load.json @@ -0,0 +1,9 @@ +{ + "tdtech" : "tdtech.sh", + "quectel" : "quectel.sh", + "fibocom" : "fibocom.sh", + "meig" : "meig.sh", + "sierra" : "sierra.sh", + "simcom" : "simcom.sh", + "huawei" : "huawei.sh" +}