Skip to content

Commit a35dfac

Browse files
committed
refactor: optimized vendor script loading mechanism by using dynamic_load.json
1 parent f3411b6 commit a35dfac

File tree

2 files changed

+19
-20
lines changed

2 files changed

+19
-20
lines changed

luci/luci-app-qmodem/root/usr/share/qmodem/modem_ctrl.sh

Lines changed: 10 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -9,30 +9,20 @@ platform=$(uci get qmodem.$config_section.platform)
99
define_connect=$(uci get qmodem.$config_section.define_connect)
1010
modem_path=$(uci get qmodem.$config_section.path)
1111
modem_slot=$(basename $modem_path)
12+
1213
[ -z "$define_connect" ] && {
1314
define_connect="1"
1415
}
1516

16-
case $vendor in
17-
"quectel")
18-
. /usr/share/qmodem/vendor/quectel.sh
19-
;;
20-
"fibocom")
21-
. /usr/share/qmodem/vendor/fibocom.sh
22-
;;
23-
"sierra")
24-
. /usr/share/qmodem/vendor/sierra.sh
25-
;;
26-
"simcom")
27-
. /usr/share/qmodem/vendor/simcom.sh
28-
;;
29-
"meig")
30-
. /usr/share/qmodem/vendor/meig.sh
31-
;;
32-
*)
33-
. /usr/share/qmodem/generic.sh
34-
;;
35-
esac
17+
#please update dynamic_load.json to add new vendor
18+
vendor_script_prefix="/usr/share/qmodem/vendor"
19+
dynamic_load_json="$vendor_script_prefix/dynamic_load.json"
20+
vendor_file="${vendor_script_prefix}/`jq -r --arg vendor $vendor '.[$vendor]' $dynamic_load_json`"
21+
if [ -z "$vendor" ] || [ ! -f "$vendor_file" ]; then
22+
logger -t modem_ctrl "vendor $vendor not support"
23+
exit 1
24+
fi
25+
. $vendor_file
3626

3727
try_cache() {
3828
cache_timeout=$1
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"tdtech" : "tdtech.sh",
3+
"quectel" : "quectel.sh",
4+
"fibocom" : "fibocom.sh",
5+
"meig" : "meig.sh",
6+
"sierra" : "sierra.sh",
7+
"simcom" : "simcom.sh",
8+
"huawei" : "huawei.sh"
9+
}

0 commit comments

Comments
 (0)