|
@@ -686,66 +686,6 @@ function change_password {
|
686
|
686
|
--msgbox $"Password for $SELECTED_USERNAME was changed" 6 40
|
687
|
687
|
}
|
688
|
688
|
|
689
|
|
-function irc_show_password {
|
690
|
|
- IRC_PASSWORD=$(cat /etc/ngircd/ngircd.conf | grep "Password =" | head -n 1 | awk -F '=' '{print $2}')
|
691
|
|
- dialog --title $"IRC Password" \
|
692
|
|
- --msgbox "$IRC_PASSWORD" 6 40
|
693
|
|
-}
|
694
|
|
-
|
695
|
|
-function irc_set_global_password {
|
696
|
|
- dialog --title $"IRC Password" \
|
697
|
|
- --clear \
|
698
|
|
- --backtitle $"Freedombone Control Panel" \
|
699
|
|
- --passwordbox $"Password for all IRC users, or press Enter for no password" 10 50 2> $data
|
700
|
|
- sel=$?
|
701
|
|
- case $sel in
|
702
|
|
- 0)
|
703
|
|
- EXISTING_IRC_PASSWORD=$(cat /etc/ngircd/ngircd.conf | grep "Password =" | head -n 1 | awk -F '=' '{print $2}')
|
704
|
|
- NEW_IRC_PASSWORD=$(<$data)
|
705
|
|
- sed -i "0,/RE/s/Password =.*/Password =$NEW_IRC_PASSWORD/" /etc/ngircd/ngircd.conf
|
706
|
|
-
|
707
|
|
- # replace the password for all users
|
708
|
|
- for d in /home/*/ ; do
|
709
|
|
- IRC_USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
|
710
|
|
- if [[ $IRC_USERNAME != "git" && $IRC_USERNAME != "mirrors" && $IRC_USERNAME != "sync" && $IRC_USERNAME != "tahoelafs" ]]; then
|
711
|
|
- if [ -f /home/$IRC_USERNAME/.irssi/config ]; then
|
712
|
|
- sed -i "s|$EXISTING_IRC_PASSWORD|$NEW_IRC_PASSWORD|g" /home/$IRC_USERNAME/.irssi/config
|
713
|
|
- chown -R $IRC_USERNAME:$IRC_USERNAME /home/$IRC_USERNAME/.irssi
|
714
|
|
- fi
|
715
|
|
- fi
|
716
|
|
- done
|
717
|
|
-
|
718
|
|
- # restart the daemon for the new password to take effect
|
719
|
|
- systemctl restart ngircd
|
720
|
|
-
|
721
|
|
- dialog --title $"IRC Password" \
|
722
|
|
- --msgbox $"The IRC password was changed" 6 40
|
723
|
|
- ;;
|
724
|
|
- esac
|
725
|
|
-}
|
726
|
|
-
|
727
|
|
-function change_blog_avatar {
|
728
|
|
- data=$(tempfile 2>/dev/null)
|
729
|
|
- trap "rm -f $data" 0 1 2 5 15
|
730
|
|
- dialog --title $"Change blog avatar" \
|
731
|
|
- --backtitle $"Freedombone Control Panel" \
|
732
|
|
- --inputbox $"Enter a URL for an image. It should be approximately a square image." 8 75 2>$data
|
733
|
|
- sel=$?
|
734
|
|
- case $sel in
|
735
|
|
- 0)
|
736
|
|
- IMAGE_URL=$(<$data)
|
737
|
|
- if [ ${#IMAGE_URL} -gt 5 ]; then
|
738
|
|
- clear
|
739
|
|
- ${PROJECT_NAME}-blog -a $IMAGE_URL
|
740
|
|
- if [ "$?" = "0" ]; then
|
741
|
|
- dialog --title $"Change blog avatar" \
|
742
|
|
- --msgbox $"Your blog avatar has been changed" 6 40
|
743
|
|
- fi
|
744
|
|
- fi
|
745
|
|
- ;;
|
746
|
|
- esac
|
747
|
|
-}
|
748
|
|
-
|
749
|
689
|
function change_ssh_public_key {
|
750
|
690
|
select_user
|
751
|
691
|
if [ ! $SELECTED_USERNAME ]; then
|
|
@@ -1367,67 +1307,6 @@ function reset_tripwire {
|
1367
|
1307
|
any_key
|
1368
|
1308
|
}
|
1369
|
1309
|
|
1370
|
|
-function hubzilla_renew_cert {
|
1371
|
|
- dialog --title $"Renew SSL certificate" \
|
1372
|
|
- --backtitle $"Freedombone Control Panel" \
|
1373
|
|
- --yesno $"\nThis will renew a letsencrypt certificate. Select 'yes' to continue" 16 60
|
1374
|
|
- sel=$?
|
1375
|
|
- case $sel in
|
1376
|
|
- 1) return;;
|
1377
|
|
- 255) return;;
|
1378
|
|
- esac
|
1379
|
|
- HUBZILLA_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Hubzilla domain" | awk -F ':' '{print $2}')
|
1380
|
|
- if [ ! -d /var/www/$HUBZILLA_DOMAIN_NAME/htdocs ]; then
|
1381
|
|
- dialog --title $"Renew SSL certificate" \
|
1382
|
|
- --msgbox $"Hubzilla install directory not found" 6 40
|
1383
|
|
- return
|
1384
|
|
- fi
|
1385
|
|
- ${PROJECT_NAME}-renew-cert -h $HUBZILLA_DOMAIN_NAME -p 'letsencrypt'
|
1386
|
|
- if [ ! "$?" = "0" ]; then
|
1387
|
|
- any_key
|
1388
|
|
- else
|
1389
|
|
- dialog --title $"Renew SSL certificate" \
|
1390
|
|
- --msgbox $"Hubzilla certificate has been renewed" 6 40
|
1391
|
|
- fi
|
1392
|
|
-}
|
1393
|
|
-
|
1394
|
|
-function hubzilla_channel_directory_server {
|
1395
|
|
- if ! grep -q "Hubzilla domain" $COMPLETION_FILE; then
|
1396
|
|
- dialog --title $"Hubzilla channel directory server" \
|
1397
|
|
- --msgbox $"Hubzilla is not installed on this system" 6 40
|
1398
|
|
- return
|
1399
|
|
- fi
|
1400
|
|
- HUBZILLA_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Hubzilla domain" | awk -F ':' '{print $2}')
|
1401
|
|
- if [ ! -d /var/www/$HUBZILLA_DOMAIN_NAME/htdocs ]; then
|
1402
|
|
- dialog --title $"Hubzilla channel directory server" \
|
1403
|
|
- --msgbox $"Hubzilla install directory not found" 6 40
|
1404
|
|
- return
|
1405
|
|
- fi
|
1406
|
|
-
|
1407
|
|
- data=$(tempfile 2>/dev/null)
|
1408
|
|
- trap "rm -f $data" 0 1 2 5 15
|
1409
|
|
- dialog --title $"Hubzilla channel directory server" \
|
1410
|
|
- --backtitle $"Freedombone Control Panel" \
|
1411
|
|
- --inputbox $"When you click on 'channel directory' this is where Hubzilla will obtain its list from" 8 60 2>$data
|
1412
|
|
- sel=$?
|
1413
|
|
- case $sel in
|
1414
|
|
- 0)
|
1415
|
|
- hubzilla_domain_server=$(<$data)
|
1416
|
|
- if [[ $hubzilla_domain_server != *"."* ]]; then
|
1417
|
|
- return
|
1418
|
|
- fi
|
1419
|
|
- if [[ $hubzilla_domain_server != "https"* ]]; then
|
1420
|
|
- dialog --title $"Hubzilla channel directory server" \
|
1421
|
|
- --msgbox $"Invalid domain - include the https://" 6 40
|
1422
|
|
- return
|
1423
|
|
- fi
|
1424
|
|
- ./var/www/$HUBZILLA_DOMAIN_NAME/htdocs/util/config system directory_server $hubzilla_domain_server
|
1425
|
|
- dialog --title $"Hubzilla channel directory server" \
|
1426
|
|
- --msgbox $"Domain channel directory server changed to $hubzilla_domain_server" 6 40
|
1427
|
|
- ;;
|
1428
|
|
- esac
|
1429
|
|
-}
|
1430
|
|
-
|
1431
|
1310
|
function format_drive {
|
1432
|
1311
|
drive=
|
1433
|
1312
|
data=$(tempfile 2>/dev/null)
|
|
@@ -1917,55 +1796,6 @@ function menu_users {
|
1917
|
1796
|
done
|
1918
|
1797
|
}
|
1919
|
1798
|
|
1920
|
|
-function menu_hubzilla {
|
1921
|
|
- while true
|
1922
|
|
- do
|
1923
|
|
- data=$(tempfile 2>/dev/null)
|
1924
|
|
- trap "rm -f $data" 0 1 2 5 15
|
1925
|
|
- dialog --backtitle $"Freedombone Control Panel" \
|
1926
|
|
- --title $"Hubzilla" \
|
1927
|
|
- --radiolist $"Choose an operation:" 13 70 4 \
|
1928
|
|
- 1 $"Set channel directory server" off \
|
1929
|
|
- 2 $"Renew SSL certificate" off \
|
1930
|
|
- 3 $"Back to main menu" on 2> $data
|
1931
|
|
- sel=$?
|
1932
|
|
- case $sel in
|
1933
|
|
- 1) break;;
|
1934
|
|
- 255) break;;
|
1935
|
|
- esac
|
1936
|
|
- case $(cat $data) in
|
1937
|
|
- 1) hubzilla_channel_directory_server;;
|
1938
|
|
- 2) hubzilla_renew_cert;;
|
1939
|
|
- 3) break;;
|
1940
|
|
- esac
|
1941
|
|
- done
|
1942
|
|
-}
|
1943
|
|
-
|
1944
|
|
-function menu_media {
|
1945
|
|
- while true
|
1946
|
|
- do
|
1947
|
|
- data=$(tempfile 2>/dev/null)
|
1948
|
|
- trap "rm -f $data" 0 1 2 5 15
|
1949
|
|
- dialog --backtitle $"Freedombone Control Panel" \
|
1950
|
|
- --title $"Media Menu" \
|
1951
|
|
- --radiolist $"Choose an operation:" 13 70 3 \
|
1952
|
|
- 1 $"Attach a drive containing playable media" off \
|
1953
|
|
- 2 $"Remove a drive containing playable media" off \
|
1954
|
|
- 3 $"Exit" on 2> $data
|
1955
|
|
- sel=$?
|
1956
|
|
- case $sel in
|
1957
|
|
- 1) break;;
|
1958
|
|
- 255) break;;
|
1959
|
|
- esac
|
1960
|
|
- case $(cat $data) in
|
1961
|
|
- 1) remove-music
|
1962
|
|
- attach-music;;
|
1963
|
|
- 2) remove-music;;
|
1964
|
|
- 3) break;;
|
1965
|
|
- esac
|
1966
|
|
- done
|
1967
|
|
-}
|
1968
|
|
-
|
1969
|
1799
|
function wifi_enable {
|
1970
|
1800
|
disable_wifi='yes'
|
1971
|
1801
|
dialog --title $"Enable Wifi" \
|
|
@@ -2018,34 +1848,42 @@ function menu_wifi {
|
2018
|
1848
|
done
|
2019
|
1849
|
}
|
2020
|
1850
|
|
2021
|
|
-function menu_irc {
|
2022
|
|
- if [ ! -d /etc/ngircd ]; then
|
2023
|
|
- dialog --title $"IRC Menu" \
|
2024
|
|
- --msgbox $"No IRC server is installed" 6 70
|
2025
|
|
- return
|
2026
|
|
- fi
|
|
1851
|
+function app_settings {
|
2027
|
1852
|
|
2028
|
|
- while true
|
|
1853
|
+
|
|
1854
|
+ detect_installable_apps
|
|
1855
|
+
|
|
1856
|
+ applist=""
|
|
1857
|
+ appnames=()
|
|
1858
|
+ n=1
|
|
1859
|
+ app_index=0
|
|
1860
|
+ for a in "${APPS_AVAILABLE[@]}"
|
2029
|
1861
|
do
|
2030
|
|
- data=$(tempfile 2>/dev/null)
|
2031
|
|
- trap "rm -f $data" 0 1 2 5 15
|
2032
|
|
- dialog --backtitle $"Freedombone Control Panel" \
|
2033
|
|
- --title $"IRC Menu" \
|
2034
|
|
- --radiolist $"Choose an operation:" 14 70 4 \
|
2035
|
|
- 1 $"Set a password for all IRC users" off \
|
2036
|
|
- 2 $"Show current IRC login password" off \
|
2037
|
|
- 3 $"Exit" on 2> $data
|
2038
|
|
- sel=$?
|
2039
|
|
- case $sel in
|
2040
|
|
- 1) break;;
|
2041
|
|
- 255) break;;
|
2042
|
|
- esac
|
2043
|
|
- case $(cat $data) in
|
2044
|
|
- 1) irc_set_global_password;;
|
2045
|
|
- 2) irc_show_password;;
|
2046
|
|
- 3) break;;
|
2047
|
|
- esac
|
|
1862
|
+ if [[ ${APPS_INSTALLED[$app_index]} != "0" ]]; then
|
|
1863
|
+ if [[ $(function_exists configure_interactive_${a}) == "1" ]]; then
|
|
1864
|
+ applist="$applist $n $a off"
|
|
1865
|
+ n=$[n+1]
|
|
1866
|
+ appnames+=("$a")
|
|
1867
|
+ fi
|
|
1868
|
+ fi
|
|
1869
|
+ app_index=$[app_index+1]
|
2048
|
1870
|
done
|
|
1871
|
+ backstr=$'Back to main menu'
|
|
1872
|
+ applist="$applist $n $backstr on"
|
|
1873
|
+ appnames+=("Exit")
|
|
1874
|
+
|
|
1875
|
+ choices=$(dialog --stdout --backtitle $"Freedombone" \
|
|
1876
|
+ --title $"Change Settings for an App" \
|
|
1877
|
+ --radiolist $'Choose:' \
|
|
1878
|
+ 27 40 20 $applist)
|
|
1879
|
+
|
|
1880
|
+ if [ $? -eq 0 ]; then
|
|
1881
|
+ for choice in $choices
|
|
1882
|
+ do
|
|
1883
|
+ app_index = $[choice-1]
|
|
1884
|
+ configure_interactive_${appname[$app_index]}
|
|
1885
|
+ done
|
|
1886
|
+ fi
|
2049
|
1887
|
}
|
2050
|
1888
|
|
2051
|
1889
|
function menu_top_level {
|
|
@@ -2059,25 +1897,22 @@ function menu_top_level {
|
2059
|
1897
|
1 $"About this system" off \
|
2060
|
1898
|
2 $"Backup and Restore" off \
|
2061
|
1899
|
3 $"Reset Tripwire" off \
|
2062
|
|
- 4 $"Logging on/off" off \
|
2063
|
|
- 5 $"Ping enable/disable" off \
|
2064
|
|
- 6 $"Manage Users" off \
|
2065
|
|
- 7 $"Email Filtering Rules" off \
|
2066
|
|
- 8 $"Outgoing Email Proxy" off \
|
2067
|
|
- 9 $"Security Settings" off \
|
2068
|
|
- 10 $"Set the main repository (repo mirrors)" off \
|
2069
|
|
- 11 $"Hubzilla" off \
|
2070
|
|
- 12 $"Media menu" off \
|
2071
|
|
- 13 $"IRC menu" off \
|
2072
|
|
- 14 $"Change your blog avatar" off \
|
2073
|
|
- 15 $"Change the name of this system" off \
|
2074
|
|
- 16 $"Set the TLS date/time source" off \
|
2075
|
|
- 17 $"Set a static local IP address" off \
|
2076
|
|
- 18 $"Wifi menu" off \
|
2077
|
|
- 19 $"Check for updates" off \
|
2078
|
|
- 20 $"Power off the system" off \
|
2079
|
|
- 21 $"Restart the system" off \
|
2080
|
|
- 22 $"Exit" on 2> $data
|
|
1900
|
+ 4 $"App Settings" off \
|
|
1901
|
+ 5 $"Logging on/off" off \
|
|
1902
|
+ 6 $"Ping enable/disable" off \
|
|
1903
|
+ 7 $"Manage Users" off \
|
|
1904
|
+ 8 $"Email Filtering Rules" off \
|
|
1905
|
+ 9 $"Outgoing Email Proxy" off \
|
|
1906
|
+ 10 $"Security Settings" off \
|
|
1907
|
+ 11 $"Set the main repository (repo mirrors)" off \
|
|
1908
|
+ 12 $"Change the name of this system" off \
|
|
1909
|
+ 13 $"Set the TLS date/time source" off \
|
|
1910
|
+ 14 $"Set a static local IP address" off \
|
|
1911
|
+ 15 $"Wifi menu" off \
|
|
1912
|
+ 16 $"Check for updates" off \
|
|
1913
|
+ 17 $"Power off the system" off \
|
|
1914
|
+ 18 $"Restart the system" off \
|
|
1915
|
+ 19 $"Exit" on 2> $data
|
2081
|
1916
|
sel=$?
|
2082
|
1917
|
case $sel in
|
2083
|
1918
|
1) exit 1;;
|
|
@@ -2087,25 +1922,22 @@ function menu_top_level {
|
2087
|
1922
|
1) show_about;;
|
2088
|
1923
|
2) menu_backup_restore;;
|
2089
|
1924
|
3) reset_tripwire;;
|
2090
|
|
- 4) logging_on_off;;
|
2091
|
|
- 5) ping_enable_disable;;
|
2092
|
|
- 6) menu_users;;
|
2093
|
|
- 7) menu_email;;
|
2094
|
|
- 8) smtp_proxy;;
|
2095
|
|
- 9) security_settings;;
|
2096
|
|
- 10) set_main_repo;;
|
2097
|
|
- 11) menu_hubzilla;;
|
2098
|
|
- 12) menu_media;;
|
2099
|
|
- 13) menu_irc;;
|
2100
|
|
- 14) change_blog_avatar;;
|
2101
|
|
- 15) change_system_name;;
|
2102
|
|
- 16) set_tls_time_source;;
|
2103
|
|
- 17) set_static_IP;;
|
2104
|
|
- 18) menu_wifi;;
|
2105
|
|
- 19) check_for_updates;;
|
2106
|
|
- 20) shut_down_system;;
|
2107
|
|
- 21) restart_system;;
|
2108
|
|
- 22) break;;
|
|
1925
|
+ 4) app_settings;;
|
|
1926
|
+ 5) logging_on_off;;
|
|
1927
|
+ 6) ping_enable_disable;;
|
|
1928
|
+ 7) menu_users;;
|
|
1929
|
+ 8) menu_email;;
|
|
1930
|
+ 9) smtp_proxy;;
|
|
1931
|
+ 10) security_settings;;
|
|
1932
|
+ 11) set_main_repo;;
|
|
1933
|
+ 12) change_system_name;;
|
|
1934
|
+ 13) set_tls_time_source;;
|
|
1935
|
+ 14) set_static_IP;;
|
|
1936
|
+ 15) menu_wifi;;
|
|
1937
|
+ 16) check_for_updates;;
|
|
1938
|
+ 17) shut_down_system;;
|
|
1939
|
+ 18) restart_system;;
|
|
1940
|
+ 19) break;;
|
2109
|
1941
|
esac
|
2110
|
1942
|
done
|
2111
|
1943
|
}
|