debian-config 3.79 KB
Newer Older
Igor Pecovnik's avatar
RFC #2    
Igor Pecovnik committed
1
2
3
4
5
6
7
8
#!/bin/bash
#
# Copyright (c) 2017 Igor Pecovnik, igor.pecovnik@gma**.com
#
# This file is licensed under the terms of the GNU General Public
# License version 2. This program is licensed "as is" without any
# warranty of any kind, whether express or implied.

ThomasKaiser's avatar
ThomasKaiser committed
9
10
# define sane $PATH
export PATH=/usr/sbin:/usr/bin:/sbin:/bin
Igor Pecovnik's avatar
Igor Pecovnik committed
11

12
13
14
15
#-----------------------------------------------------------------------------------------------------------------------------------------#
# check for root
#
if [[ $EUID != 0 ]]; then
ThomasKaiser's avatar
ThomasKaiser committed
16
	echo "This tool requires root privileges. Try again with \"sudo \" please ..." >&2
17
	sleep 2
ThomasKaiser's avatar
ThomasKaiser committed
18
	exit 1
19
20
21
22
23
24
fi


#-----------------------------------------------------------------------------------------------------------------------------------------#
# check if we have internet connection to install dependencies
#
25
echo -e "GET http://github.com HTTP/1.0\n\n" | nc github.com 80 > /dev/null 2>&1
26
27
28
29
30
31
32
if [[ $? -ne 0 ]]; then
		read -n 1 -s -p "Warning. Configurator can't work properly without internet connection. \
		Press CTRL C to stop to stop or any key to ignore and continue."
fi


#-----------------------------------------------------------------------------------------------------------------------------------------#
Igor Pecovnik's avatar
Igor Pecovnik committed
33
# load functions
34
35
[[ -f /usr/lib/armbian-config/jobs.sh ]] && source /usr/lib/armbian-config/jobs.sh || source ${BASH_SOURCE}-jobs
[[ -f /usr/lib/armbian-config/submenu.sh ]] && source /usr/lib/armbian-config/submenu.sh || source ${BASH_SOURCE}-submenu
36
[[ -f /usr/lib/armbian-config/functions.sh ]] && source /usr/lib/armbian-config/functions.sh || source ${BASH_SOURCE}-functions
37
[[ -f /usr/lib/armbian-config/functions-network.sh ]] && source /usr/lib/armbian-config/functions-network.sh || source ${BASH_SOURCE}-functions-network
38

39
40


41
#-----------------------------------------------------------------------------------------------------------------------------------------#
Igor Pecovnik's avatar
Igor Pecovnik committed
42
# Main menu
43
#
Igor Pecovnik's avatar
Cleanup    
Igor Pecovnik committed
44
45
while true
do
Igor Pecovnik's avatar
Igor Pecovnik committed
46
	LIST=()
47

48
49
50
	LIST+=( "System" "System and security settings" )
	LIST+=( "Network" "Wired, wireless, Bluetooth, access point" )
	LIST+=( "Personal" "Timezone, language, hostname" )
Igor Pecovnik's avatar
Cleanup    
Igor Pecovnik committed
51
52
	LIST+=( "Software" "System and 3rd party software install" )
	LIST+=( "Help" "Documentation, support, sources" )
53

54
55
	# count number of menu items to adjust window size
	LISTLENGHT="$((11+${#LIST[@]}/2))"
Igor Pecovnik's avatar
Igor Pecovnik committed
56
	BOXLENGHT=${#LIST[@]}
57
58
	MENUTITLE="Configure $DISTRO $DISTROID based \Z1Armbian\Z0 "
	[[ -n "${BOARD_NAME/ /}" ]] && MENUTITLE=$MENUTITLE"for the \Z1${BOARD_NAME}\Z0 "
Igor Pecovnik's avatar
RFC #2    
Igor Pecovnik committed
59

Igor Pecovnik's avatar
Igor Pecovnik committed
60
61
62
	# main dialog routine
	DIALOG_CANCEL=1
	DIALOG_ESC=255
Igor Pecovnik's avatar
Igor Pecovnik committed
63
64
	TITLELENGHT=${#MENUTITLE}

65
	[[ "$TITLELENGHT" -lt 60 ]] && TITLELENGHT="60"
66

Igor Pecovnik's avatar
RFC #2    
Igor Pecovnik committed
67
	exec 3>&1
68
	selection=$(dialog --colors --backtitle "$BACKTITLE" --title " armbian-config " --clear \
Igor Pecovnik's avatar
Igor Pecovnik committed
69
	--cancel-label "Cancel" --menu "\n$MENUTITLE \n \nSupport: \Z1https://www.armbian.com\Z0\n " \
Igor Pecovnik's avatar
Igor Pecovnik committed
70
	$LISTLENGHT ${TITLELENGHT} $BOXLENGHT "${LIST[@]}" 2>&1 1>&3)
Igor Pecovnik's avatar
RFC #2    
Igor Pecovnik committed
71
72
	exit_status=$?
	exec 3>&-
73

Igor Pecovnik's avatar
Igor Pecovnik committed
74
	[[ $exit_status == $DIALOG_CANCEL || $exit_status == $DIALOG_ESC ]] && clear && exit
Igor Pecovnik's avatar
Igor Pecovnik committed
75

Igor Pecovnik's avatar
Igor Pecovnik committed
76
	dialog --backtitle "$BACKTITLE" --title "Please wait" --infobox "\nLoading ${selection,,} submodule ... " 5 $((26+${#selection}))
77

Igor Pecovnik's avatar
RFC #2    
Igor Pecovnik committed
78
79
	case $selection in

80
81
		"System" )
			submenu_settings
82
		;;
83
84

		"Network" )
85
86
			submenu_networking
		;;
87
88
89

		"Personal" )
			submenu_personal
90
		;;
91
92
93

		"Software" )
			submenu_software
94
		;;
95

96
		"Help" )
Igor Pecovnik's avatar
Igor Pecovnik committed
97
			show_box "Info" "This tool provides a straightforward way of configuring the \Z4${BOARD_NAME}\Z0. \
98
			\n \nAlthough it can be run at any time, some of the options may have difficulties if you alter system settings manually.\n\
Igor Pecovnik's avatar
Igor Pecovnik committed
99
100
			\n\Z1Documentation:\Z0     https://docs.armbian.com\n\n\Z1Support:\Z0           https://forum.armbian.com\n
			\n\Z1Sources:\Z0           https://git.armbian.com" "18"
101
		;;
Igor Pecovnik's avatar
Cleanup    
Igor Pecovnik committed
102
	esac
103
done
104
#-----------------------------------------------------------------------------------------------------------------------------------------#