|
@@ -65,6 +65,7 @@ WIFI_SSID=
|
65
|
65
|
WIFI_TYPE='wpa2-psk'
|
66
|
66
|
WIFI_PASSPHRASE=
|
67
|
67
|
WIFI_HOTSPOT='no'
|
|
68
|
+WIFI_NETWORKS_FILE=~/${PROJECT_NAME}-wifi.cfg
|
68
|
69
|
|
69
|
70
|
USB_DRIVE=sdb
|
70
|
71
|
# get default USB from config file
|
|
@@ -1684,94 +1685,15 @@ Enter a static local IP address for this system.\n\nIt will typically be 192.168
|
1684
|
1685
|
}
|
1685
|
1686
|
|
1686
|
1687
|
function wifi_settings {
|
1687
|
|
- PREV_WIFI_HOTSPOT=$WIFI_HOTSPOT
|
1688
|
|
- PREV_WIFI_INTERFACE=$WIFI_INTERFACE
|
1689
|
|
- PREV_WIFI_SSID=$WIFI_SSID
|
1690
|
|
- PREV_WIFI_TYPE=$WIFI_TYPE
|
1691
|
|
- PREV_WIFI_PASSPHRASE=$WIFI_PASSPHRASE
|
1692
|
|
-
|
1693
|
|
- data=$(tempfile 2>/dev/null)
|
1694
|
|
- trap "rm -f $data" 0 1 2 5 15
|
1695
|
|
- dialog --backtitle $"Freedombone Control Panel" \
|
1696
|
|
- --title $"Wifi Settings" \
|
1697
|
|
- --form $"\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:" 17 55 6 \
|
1698
|
|
- $"Interface:" 1 1 "$WIFI_INTERFACE" 1 16 6 6 \
|
1699
|
|
- $"SSID:" 2 1 "$WIFI_SSID" 2 16 30 30 \
|
1700
|
|
- $"Type:" 3 1 "$WIFI_TYPE" 3 16 10 10 \
|
1701
|
|
- $"Passphrase:" 4 1 "$WIFI_PASSPHRASE" 4 16 30 30 \
|
1702
|
|
- $"Hotspot:" 5 1 "$WIFI_HOTSPOT" 5 16 6 6 \
|
1703
|
|
- 2> $data
|
1704
|
|
- sel=$?
|
1705
|
|
- case $sel in
|
1706
|
|
- 1) return;;
|
1707
|
|
- 255) return;;
|
1708
|
|
- esac
|
1709
|
|
- NEW_WIFI_INTERFACE=$(cat $data | sed -n 1p)
|
1710
|
|
- NEW_WIFI_SSID=$(cat $data | sed -n 2p)
|
1711
|
|
- NEW_WIFI_TYPE=$(cat $data | sed -n 3p)
|
1712
|
|
- NEW_WIFI_PASSPHRASE=$(cat $data | sed -n 4p)
|
1713
|
|
- NEW_WIFI_HOTSPOT=$(cat $data | sed -n 5p)
|
1714
|
|
-
|
1715
|
|
- if [[ $NEW_WIFI_TYPE != 'none' && $NEW_WIFI_TYPE != 'wpa2-psk' ]]; then
|
1716
|
|
- return
|
1717
|
|
- fi
|
1718
|
|
-
|
1719
|
|
- if [[ $NEW_WIFI_TYPE != 'none' ]]; then
|
1720
|
|
- if [ ! $NEW_WIFI_PASSPHRASE ]; then
|
1721
|
|
- return
|
1722
|
|
- fi
|
1723
|
|
- if [ ${#NEW_WIFI_PASSPHRASE} -lt 2 ]; then
|
1724
|
|
- return
|
1725
|
|
- fi
|
1726
|
|
-
|
1727
|
|
- HOTSPOT='no'
|
1728
|
|
- if [[ $NEW_WIFI_HOTSPOT == $'Y' || $NEW_WIFI_HOTSPOT == $'y' || $NEW_WIFI_HOTSPOT == $'yes' || $NEW_WIFI_HOTSPOT == $'Yes' || $NEW_WIFI_HOTSPOT == $'true' || $NEW_WIFI_HOTSPOT == $'on' || $NEW_WIFI_HOTSPOT == $'True' || $NEW_WIFI_HOTSPOT == '1' ]]; then
|
1729
|
|
- HOTSPOT='yes'
|
1730
|
|
- fi
|
1731
|
|
-
|
1732
|
|
- ${PROJECT_NAME}-wifi -i $NEW_WIFI_INTERFACE -s $NEW_WIFI_SSID -t $NEW_WIFI_TYPE -p $NEW_WIFI_PASSPHRASE --hotspot $HOTSPOT
|
1733
|
|
- else
|
1734
|
|
- ${PROJECT_NAME}-wifi -i $NEW_WIFI_INTERFACE -s $NEW_WIFI_SSID -t $NEW_WIFI_TYPE --hotspot $HOTSPOT
|
1735
|
|
- fi
|
1736
|
|
-
|
1737
|
|
- if [[ $PREV_WIFI_INTERFACE != $NEW_WIFI_INTERFACE || $PREV_WIFI_SSID != $NEW_WIFI_SSID || $PREV_WIFI_TYPE != $NEW_WIFI_TYPE || $PREV_WIFI_PASSPHRASE != $NEW_WIFI_PASSPHRASE ]]; then
|
|
1688
|
+ TEMP_WIFI_NETWORKS_FILE=~/.temp-${PROJECT_NAME}-wifi.cfg
|
|
1689
|
+ ${PROJECT_NAME}-wifi --networksinteractive $TEMP_WIFI_NETWORKS_FILE
|
|
1690
|
+ if [ -f $TEMP_WIFI_NETWORKS_FILE ]; then
|
|
1691
|
+ cp $TEMP_WIFI_NETWORKS_FILE $WIFI_NETWORKS_FILE
|
|
1692
|
+ rm $TEMP_WIFI_NETWORKS_FILE
|
|
1693
|
+ ${PROJECT_NAME}-wifi --networks $WIFI_NETWORKS_FILE
|
1738
|
1694
|
dialog --title $"Wifi Settings" \
|
1739
|
1695
|
--msgbox $"Wifi settings were changed" 6 40
|
1740
|
|
-
|
1741
|
|
- WIFI_INTERFACE=$NEW_WIFI_INTERFACE
|
1742
|
|
- WIFI_SSID=$NEW_WIFI_SSID
|
1743
|
|
- WIFI_TYPE=$NEW_WIFI_TYPE
|
1744
|
|
- WIFI_PASSPHRASE=$NEW_WIFI_PASSPHRASE
|
1745
|
|
-
|
1746
|
|
- # update the configuration
|
1747
|
|
- if ! grep -q "WIFI_INTERFACE=" $CONFIGURATION_FILE; then
|
1748
|
|
- echo "WIFI_INTERFACE=$WIFI_INTERFACE" >> $CONFIGURATION_FILE
|
1749
|
|
- else
|
1750
|
|
- sed -i "s|WIFI_INTERFACE=.*|WIFI_INTERFACE=$WIFI_INTERFACE|g" $CONFIGURATION_FILE
|
1751
|
|
- fi
|
1752
|
|
- if ! grep -q "WIFI_TYPE=" $CONFIGURATION_FILE; then
|
1753
|
|
- echo "WIFI_TYPE=$WIFI_TYPE" >> $CONFIGURATION_FILE
|
1754
|
|
- else
|
1755
|
|
- sed -i "s|WIFI_TYPE=.*|WIFI_TYPE=$WIFI_TYPE|g" $CONFIGURATION_FILE
|
1756
|
|
- fi
|
1757
|
|
- if ! grep -q "WIFI_SSID=" $CONFIGURATION_FILE; then
|
1758
|
|
- echo "WIFI_SSID=$WIFI_SSID" >> $CONFIGURATION_FILE
|
1759
|
|
- else
|
1760
|
|
- sed -i "s|WIFI_SSID=.*|WIFI_SSID=$WIFI_SSID|g" $CONFIGURATION_FILE
|
1761
|
|
- fi
|
1762
|
|
- if ! grep -q "WIFI_PASSPHRASE=" $CONFIGURATION_FILE; then
|
1763
|
|
- echo "WIFI_PASSPHRASE=$WIFI_PASSPHRASE" >> $CONFIGURATION_FILE
|
1764
|
|
- else
|
1765
|
|
- sed -i "s|WIFI_PASSPHRASE=.*|WIFI_PASSPHRASE=$WIFI_PASSPHRASE|g" $CONFIGURATION_FILE
|
1766
|
|
- fi
|
1767
|
|
- if ! grep -q "WIFI_HOTSPOT=" $CONFIGURATION_FILE; then
|
1768
|
|
- echo "WIFI_HOTSPOT=$WIFI_HOTSPOT" >> $CONFIGURATION_FILE
|
1769
|
|
- else
|
1770
|
|
- sed -i "s|WIFI_HOTSPOT=.*|WIFI_HOTSPOT=$WIFI_HOTSPOT|g" $CONFIGURATION_FILE
|
1771
|
|
- fi
|
1772
|
|
-
|
1773
|
|
- systemctl restart network-manager
|
1774
|
|
- fi
|
|
1696
|
+ fi
|
1775
|
1697
|
}
|
1776
|
1698
|
|
1777
|
1699
|
function menu_backup_restore {
|
|
@@ -1919,6 +1841,41 @@ function menu_media {
|
1919
|
1841
|
done
|
1920
|
1842
|
}
|
1921
|
1843
|
|
|
1844
|
+function hotspot_settings {
|
|
1845
|
+ # TODO
|
|
1846
|
+}
|
|
1847
|
+
|
|
1848
|
+function menu_wifi {
|
|
1849
|
+ hotspot_state=$'off'
|
|
1850
|
+ if [ -f /etc/hostapd/hostapd.conf ]; then
|
|
1851
|
+ hotspot_state=$'on'
|
|
1852
|
+ fi
|
|
1853
|
+
|
|
1854
|
+ while true
|
|
1855
|
+ do
|
|
1856
|
+ data=$(tempfile 2>/dev/null)
|
|
1857
|
+ trap "rm -f $data" 0 1 2 5 15
|
|
1858
|
+ dialog --backtitle $"Freedombone Control Panel" \
|
|
1859
|
+ --title $"Wifi Menu" \
|
|
1860
|
+ --radiolist $"Choose an operation:" 12 70 4 \
|
|
1861
|
+ 1 $"Configure wifi networks" off \
|
|
1862
|
+ 2 $"Manually edit wifi networks file" off \
|
|
1863
|
+ 3 $"Hotspot settings" off \
|
|
1864
|
+ 4 $"Exit" on 2> $data
|
|
1865
|
+ sel=$?
|
|
1866
|
+ case $sel in
|
|
1867
|
+ 1) break;;
|
|
1868
|
+ 255) break;;
|
|
1869
|
+ esac
|
|
1870
|
+ case $(cat $data) in
|
|
1871
|
+ 1) wifi_settings;;
|
|
1872
|
+ 2) editor $WIFI_NETWORKS_FILE;;
|
|
1873
|
+ 3) hotspot_settings;;
|
|
1874
|
+ 4) break;;
|
|
1875
|
+ esac
|
|
1876
|
+ done
|
|
1877
|
+}
|
|
1878
|
+
|
1922
|
1879
|
function menu_irc {
|
1923
|
1880
|
if [ ! -d /etc/ngircd ]; then
|
1924
|
1881
|
dialog --title $"IRC Menu" \
|
|
@@ -1974,7 +1931,7 @@ function menu_top_level {
|
1974
|
1931
|
15 $"Change the name of this system" off \
|
1975
|
1932
|
16 $"Set the TLS date/time source" off \
|
1976
|
1933
|
17 $"Set a static local IP address" off \
|
1977
|
|
- 18 $"Wifi Settings" off \
|
|
1934
|
+ 18 $"Wifi menu" off \
|
1978
|
1935
|
19 $"Check for updates" off \
|
1979
|
1936
|
20 $"Power off the system" off \
|
1980
|
1937
|
21 $"Restart the system" off \
|
|
@@ -2002,7 +1959,7 @@ function menu_top_level {
|
2002
|
1959
|
15) change_system_name;;
|
2003
|
1960
|
16) set_tls_time_source;;
|
2004
|
1961
|
17) set_static_IP;;
|
2005
|
|
- 18) wifi_settings;;
|
|
1962
|
+ 18) menu_wifi;;
|
2006
|
1963
|
19) check_for_updates;;
|
2007
|
1964
|
20) shut_down_system;;
|
2008
|
1965
|
21) restart_system;;
|