From ffbe8634d6268dc88f3a57135a047a22e51c5edc Mon Sep 17 00:00:00 2001
From: Viktor <35473052+viktorxda@users.noreply.github.com>
Date: Mon, 26 Jun 2023 04:32:09 +0200
Subject: [PATCH] [no ci] Package: update wireless-configuration

---
 .../wireless-configuration/files/S30wireless  |  6 ++
 .../wireless-configuration/files/adapter      | 49 +++++++++++
 .../files/network/interfaces.conf             | 14 ----
 .../files/script/S30wireless                  |  5 --
 .../files/script/adapter                      | 26 ------
 .../files/script/wireless                     | 81 -------------------
 .../files/{network => }/udhcpd.conf           |  0
 .../wireless-configuration/files/wireless     | 74 +++++++++++++++++
 .../wireless-configuration.mk                 | 13 +--
 9 files changed, 133 insertions(+), 135 deletions(-)
 create mode 100755 general/package/wireless-configuration/files/S30wireless
 create mode 100755 general/package/wireless-configuration/files/adapter
 delete mode 100644 general/package/wireless-configuration/files/network/interfaces.conf
 delete mode 100755 general/package/wireless-configuration/files/script/S30wireless
 delete mode 100755 general/package/wireless-configuration/files/script/adapter
 delete mode 100755 general/package/wireless-configuration/files/script/wireless
 rename general/package/wireless-configuration/files/{network => }/udhcpd.conf (100%)
 create mode 100755 general/package/wireless-configuration/files/wireless

diff --git a/general/package/wireless-configuration/files/S30wireless b/general/package/wireless-configuration/files/S30wireless
new file mode 100755
index 00000000..db22acc7
--- /dev/null
+++ b/general/package/wireless-configuration/files/S30wireless
@@ -0,0 +1,6 @@
+#!/bin/sh
+template="auto wlan0\niface wlan0 inet dhcp\n\tpost-up wireless\n\tpost-down wireless"
+
+if [ "$1" = "start" ]; then
+  /etc/network/adapter && echo -e "$template" > /etc/network/interfaces.d/wlan0
+fi
diff --git a/general/package/wireless-configuration/files/adapter b/general/package/wireless-configuration/files/adapter
new file mode 100755
index 00000000..d68f304b
--- /dev/null
+++ b/general/package/wireless-configuration/files/adapter
@@ -0,0 +1,49 @@
+#!/bin/sh
+SOC=$(fw_printenv -n soc)
+
+# HI3516EV300 CamHi
+if [ "$SOC" = "hi3516ev300" ]; then
+  devmem 0x100C0080 32 0x530
+  echo 7 > /sys/class/gpio/export
+  echo out > /sys/class/gpio/gpio7/direction
+  echo 0 > /sys/class/gpio/gpio7/value
+  sleep 1
+  if lsusb | grep -q 7601; then
+    modprobe mt7601usta
+    exit 0
+  fi
+fi
+
+# SSC338Q CamHi
+if [ "$SOC" = "ssc338q" ]; then
+  if lsusb | grep -q f72b; then
+    modprobe 8733bu
+    exit 0
+  fi
+fi
+
+# SSC337DE Foscam
+if [ "$SOC" = "ssc337de" ]; then
+  echo 15 > /sys/class/gpio/export
+  echo out > /sys/class/gpio/gpio15/direction
+  echo 0 > /sys/class/gpio/gpio15/value
+  sleep 1
+  if lsusb | grep -q f179; then
+    modprobe 8188fu
+    exit 0
+  fi
+fi
+
+# T21 BJS
+if [ "$SOC" = "t21" ]; then
+  echo 50 > /sys/class/gpio/export
+  echo out > /sys/class/gpio/gpio50/direction
+  echo 0 > /sys/class/gpio/gpio50/value
+  sleep 1
+  if lsusb | grep -q f179; then
+    modprobe 8188fu
+    exit 0
+  fi
+fi
+
+exit 1
diff --git a/general/package/wireless-configuration/files/network/interfaces.conf b/general/package/wireless-configuration/files/network/interfaces.conf
deleted file mode 100644
index 411251c3..00000000
--- a/general/package/wireless-configuration/files/network/interfaces.conf
+++ /dev/null
@@ -1,14 +0,0 @@
-auto lo
-iface lo inet loopback
-
-auto eth0
-iface eth0 inet static
-	hwaddress ether $(fw_printenv -n ethaddr || echo 00:00:23:34:45:66)
-	address 192.168.2.10
-	netmask 255.255.255.0
-
-auto wlan0
-iface wlan0 inet dhcp
-	pre-up wireless
-	post-up wireless
-	post-down wireless
diff --git a/general/package/wireless-configuration/files/script/S30wireless b/general/package/wireless-configuration/files/script/S30wireless
deleted file mode 100755
index 0446ffef..00000000
--- a/general/package/wireless-configuration/files/script/S30wireless
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-if [ "$1" == "start" ] && [ -e /etc/network/interfaces.conf ]; then
-	cp -f /etc/network/interfaces.conf /etc/network/interfaces
-	rm -f /etc/network/interfaces.conf
-fi
diff --git a/general/package/wireless-configuration/files/script/adapter b/general/package/wireless-configuration/files/script/adapter
deleted file mode 100755
index 2093cab7..00000000
--- a/general/package/wireless-configuration/files/script/adapter
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/sh
-SOC=$(fw_printenv -n soc)
-
-# SSC338Q CamHi
-if [ "$SOC" == "ssc338q" ]; then
-	modprobe 8733bu
-fi
-
-# HI3516EV300 CamHi
-if [ "$SOC" == "hi3516ev300" ]; then
-	devmem 0x100C0080 32 0x530
-	echo 7 > /sys/class/gpio/export
-	echo out > /sys/class/gpio/gpio7/direction
-	echo 0 > /sys/class/gpio/gpio7/value
-	echo 7 > /sys/class/gpio/unexport
-	modprobe mt7601usta
-fi
-
-# T21 BJS
-if [ "$SOC" == "t21" ]; then
-	echo 50 > /sys/class/gpio/export
-	echo out > /sys/class/gpio/gpio50/direction
-	echo 0 > /sys/class/gpio/gpio50/value
-	echo 50 > /sys/class/gpio/unexport
-	modprobe 8188fu
-fi
diff --git a/general/package/wireless-configuration/files/script/wireless b/general/package/wireless-configuration/files/script/wireless
deleted file mode 100755
index ba5ec52d..00000000
--- a/general/package/wireless-configuration/files/script/wireless
+++ /dev/null
@@ -1,81 +0,0 @@
-#!/bin/sh
-WPA_FILE=/etc/wireless.conf
-WPA_TEMP=/tmp/wpa_supplicant.conf
-
-if [ -e "$WPA_FILE" ]; then
-	WPA_SSID=$(sed -n "1p" $WPA_FILE)
-	WPA_PASS=$(sed -n "2p" $WPA_FILE)
-	WPA_MODE=$(sed -n "3p" $WPA_FILE)
-fi
-
-if [ -z "$WPA_SSID" ] || [ -z "$WPA_PASS" ] || [ "$WPA_MODE" != "client" ]; then
-	WPA_SSID=OpenIPC
-	WPA_PASS=12345678
-	WPA_MODE=server
-	rm -f "$WPA_FILE"
-fi
-
-case "$PHASE" in
-	pre-up)
-		/etc/network/adapter
-		wpa_passphrase "$WPA_SSID" "$WPA_PASS" > $WPA_TEMP
-		if [ "$WPA_MODE" = "server" ]; then
-			sed -i '2i \\tmode=2' $WPA_TEMP
-		else
-			sed -i '2i \\tscan_ssid=1' $WPA_TEMP
-		fi
-		exit 0
-		;;
-
-	post-up)
-		if [ "$WPA_MODE" = "server" ]; then
-			timeout 3m udhcpd -f &> /dev/null &
-			timeout 3m wpa_supplicant -i wlan0 -c $WPA_TEMP &> /dev/null &
-		else
-			wpa_supplicant -B -i wlan0 -c $WPA_TEMP
-		fi
-		exit 0
-		;;
-
-	post-down)
-		killall -q udhcpd
-		killall -q wpa_supplicant
-		exit 0
-		;;
-esac
-
-case "$1" in
-	connect)
-		ifdown wlan0
-		ifup wlan0
-		;;
-
-	reset)
-		rm -f "$WPA_FILE"
-		;;
-
-	setup)
-		if [ -z "$2" ] || [ -z "$3" ]; then
-			echo wireless setup [SSID] [PASS]
-			exit 0
-		fi
-		rm -f "$WPA_FILE"
-		echo "$2" >> "$WPA_FILE"
-		echo "$3" >> "$WPA_FILE"
-		echo "client" >> "$WPA_FILE"
-		echo SSID: "$2"
-		echo PASS: "$3"
-		;;
-
-	show)
-		echo SSID: "$WPA_SSID"
-		echo PASS: "$WPA_PASS"
-		;;
-
-	*)
-		echo wireless connect
-		echo wireless reset
-		echo wireless setup
-		echo wireless show
-		;;
-esac
diff --git a/general/package/wireless-configuration/files/network/udhcpd.conf b/general/package/wireless-configuration/files/udhcpd.conf
similarity index 100%
rename from general/package/wireless-configuration/files/network/udhcpd.conf
rename to general/package/wireless-configuration/files/udhcpd.conf
diff --git a/general/package/wireless-configuration/files/wireless b/general/package/wireless-configuration/files/wireless
new file mode 100755
index 00000000..9db8b1b4
--- /dev/null
+++ b/general/package/wireless-configuration/files/wireless
@@ -0,0 +1,74 @@
+#!/bin/sh
+WPA_FILE=/etc/wireless.conf
+WPA_TEMP=/tmp/wpa_supplicant.conf
+
+if [ -e "$WPA_FILE" ]; then
+  WPA_SSID=$(sed -n "1p" $WPA_FILE)
+  WPA_PASS=$(sed -n "2p" $WPA_FILE)
+  WPA_MODE=$(sed -n "3p" $WPA_FILE)
+fi
+
+if [ -z "$WPA_SSID" ] || [ -z "$WPA_PASS" ] || [ "$WPA_MODE" != "client" ]; then
+  WPA_SSID=OpenIPC
+  WPA_PASS=12345678
+  WPA_MODE=server
+  rm -f "$WPA_FILE"
+fi
+
+case "$PHASE" in
+  post-up)
+    wpa_passphrase "$WPA_SSID" "$WPA_PASS" > $WPA_TEMP
+    if [ "$WPA_MODE" = "server" ]; then
+      sed -i '2i \\tmode=2' $WPA_TEMP
+      timeout 5m udhcpd -f &> /dev/null &
+      timeout 5m wpa_supplicant -i wlan0 -c $WPA_TEMP &> /dev/null &
+    else
+      sed -i '2i \\tscan_ssid=1' $WPA_TEMP
+      wpa_supplicant -B -i wlan0 -c $WPA_TEMP
+    fi
+    ifdown -f eth0
+    exit 0
+    ;;
+
+  post-down)
+    killall -q udhcpd
+    killall -q wpa_supplicant
+    exit 0
+    ;;
+esac
+
+case "$1" in
+  connect)
+    ifdown wlan0
+    ifup wlan0
+    ;;
+
+  reset)
+    rm -f "$WPA_FILE"
+    ;;
+
+  setup)
+    if [ -z "$2" ] || [ -z "$3" ]; then
+      echo wireless setup [SSID] [PASS]
+      exit 0
+    fi
+    rm -f "$WPA_FILE"
+    echo "$2" >> "$WPA_FILE"
+    echo "$3" >> "$WPA_FILE"
+    echo "client" >> "$WPA_FILE"
+    echo SSID: "$2"
+    echo PASS: "$3"
+    ;;
+
+  show)
+    echo SSID: "$WPA_SSID"
+    echo PASS: "$WPA_PASS"
+    ;;
+
+  *)
+    echo wireless connect
+    echo wireless reset
+    echo wireless setup
+    echo wireless show
+    ;;
+esac
diff --git a/general/package/wireless-configuration/wireless-configuration.mk b/general/package/wireless-configuration/wireless-configuration.mk
index c6052855..53081420 100644
--- a/general/package/wireless-configuration/wireless-configuration.mk
+++ b/general/package/wireless-configuration/wireless-configuration.mk
@@ -6,24 +6,19 @@
 
 WIRELESS_CONFIGURATION_VERSION =
 WIRELESS_CONFIGURATION_SITE =
-WIRELESS_CONFIGURATION_LICENSE = MIT
-WIRELESS_CONFIGURATION_LICENSE_FILES = LICENSE
-
-WIRELESS_CONFIGURATION_PATH = $(WIRELESS_CONFIGURATION_PKGDIR)/files
 
 define WIRELESS_CONFIGURATION_INSTALL_TARGET_CMDS
 	$(INSTALL) -m 755 -d $(TARGET_DIR)/etc
-	$(INSTALL) -m 644 -t $(TARGET_DIR)/etc $(WIRELESS_CONFIGURATION_PATH)/network/udhcpd.conf
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/etc $(WIRELESS_CONFIGURATION_PKGDIR)/files/udhcpd.conf
 
 	$(INSTALL) -m 755 -d $(TARGET_DIR)/etc/init.d
-	$(INSTALL) -m 755 -t $(TARGET_DIR)/etc/init.d $(WIRELESS_CONFIGURATION_PATH)/script/S30wireless
+	$(INSTALL) -m 755 -t $(TARGET_DIR)/etc/init.d $(WIRELESS_CONFIGURATION_PKGDIR)/files/S30wireless
 
 	$(INSTALL) -m 755 -d $(TARGET_DIR)/etc/network
-	$(INSTALL) -m 644 -t $(TARGET_DIR)/etc/network $(WIRELESS_CONFIGURATION_PATH)/network/interfaces.conf
-	$(INSTALL) -m 755 -t $(TARGET_DIR)/etc/network $(WIRELESS_CONFIGURATION_PATH)/script/adapter
+	$(INSTALL) -m 755 -t $(TARGET_DIR)/etc/network $(WIRELESS_CONFIGURATION_PKGDIR)/files/adapter
 
 	$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/sbin
-	$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/sbin $(WIRELESS_CONFIGURATION_PATH)/script/wireless
+	$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/sbin $(WIRELESS_CONFIGURATION_PKGDIR)/files/wireless
 endef
 
 $(eval $(generic-package))