debian-config 3.43 KB
Newer Older
Igor Pecovnik's avatar
RFC #2    
Igor Pecovnik committed
1
2
#!/bin/bash
#
3
# Copyright (c) Authors: http://www.armbian.com/authors, info@armbian.com
Igor Pecovnik's avatar
RFC #2    
Igor Pecovnik committed
4
5
6
7
8
#
# 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.

Igor Pecovnik's avatar
Igor Pecovnik committed
9
10
11
12



#
13
# check for root priveleges
14
15
#
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
fi


Igor Pecovnik's avatar
Igor Pecovnik committed
22
23
24


#
25
# check for internet connection to install dependencies
26
#
27
echo -e "GET http://github.com HTTP/1.0\n\n" | nc github.com 80 > /dev/null 2>&1
28
29
30
31
32
33
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


34

Igor Pecovnik's avatar
Igor Pecovnik committed
35
36
37
38

#
# load functions, local first
#
39
40
41
42
43
44
45
46
47
if  [[ -f ${BASH_SOURCE}-jobs ]]; then source ${BASH_SOURCE}-jobs;
	elif  [[ -f /usr/lib/armbian-config/jobs.sh ]]; then source /usr/lib/armbian-config/jobs.sh;
	else exit 1;
fi

if  [[ -f ${BASH_SOURCE}-submenu ]]; then source ${BASH_SOURCE}-submenu;
	elif  [[ -f /usr/lib/armbian-config/submenu.sh ]]; then source /usr/lib/armbian-config/submenu.sh;
	else exit 1;
fi
48

49
50
51
52
53
54
55
56
57
58
if  [[ -f ${BASH_SOURCE}-functions ]]; then source ${BASH_SOURCE}-functions;
	elif  [[ -f /usr/lib/armbian-config/functions.sh ]]; then source /usr/lib/armbian-config/functions.sh;
	else exit 1;
fi

if  [[ -f ${BASH_SOURCE}-functions-network ]]; then source ${BASH_SOURCE}-functions-network;
	elif  [[ -f /usr/lib/armbian-config/functions-network.sh ]]; then source /usr/lib/armbian-config/functions-network.sh;
	else exit 1;
fi

Igor Pecovnik's avatar
Igor Pecovnik committed
59
60
61



62
63
# collect info
main "$@"
64
65


Igor Pecovnik's avatar
Igor Pecovnik committed
66
67
68


#
Igor Pecovnik's avatar
Igor Pecovnik committed
69
# Main menu
70
#
Igor Pecovnik's avatar
Cleanup    
Igor Pecovnik committed
71
72
while true
do
Igor Pecovnik's avatar
Igor Pecovnik committed
73
	LIST=()
74

75
76
77
	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
78
79
	LIST+=( "Software" "System and 3rd party software install" )
	LIST+=( "Help" "Documentation, support, sources" )
80

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

Igor Pecovnik's avatar
Igor Pecovnik committed
87
88
89
	# main dialog routine
	DIALOG_CANCEL=1
	DIALOG_ESC=255
Igor Pecovnik's avatar
Igor Pecovnik committed
90
91
	TITLELENGHT=${#MENUTITLE}

92
	[[ "$TITLELENGHT" -lt 60 ]] && TITLELENGHT="60"
93

Igor Pecovnik's avatar
RFC #2    
Igor Pecovnik committed
94
	exec 3>&1
95
	selection=$(dialog --colors --backtitle "$BACKTITLE" --title " armbian-config " --clear \
96
	--cancel-label "Cancel" --menu "\n$MENUTITLE \n \nSupport: \Z1https://forum.armbian.com\Z0\n " \
Igor Pecovnik's avatar
Igor Pecovnik committed
97
	$LISTLENGHT ${TITLELENGHT} $BOXLENGHT "${LIST[@]}" 2>&1 1>&3)
Igor Pecovnik's avatar
RFC #2    
Igor Pecovnik committed
98
99
	exit_status=$?
	exec 3>&-
100

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

103
104
	dialog --backtitle "$BACKTITLE" --title "Please wait" --infobox \
	"\nLoading ${selection,,} submodule ... " 5 $((26+${#selection}))
105

Igor Pecovnik's avatar
RFC #2    
Igor Pecovnik committed
106
107
	case $selection in

108
109
		"System" )
			submenu_settings
110
		;;
111
112

		"Network" )
113
114
			submenu_networking
		;;
115
116
117

		"Personal" )
			submenu_personal
118
		;;
119
120
121

		"Software" )
			submenu_software
122
		;;
123

124
		"Help" )
125
126
127
128
129
130
131
			t="This tool provides a straightforward way of configuring."
			t=$t"\n \nAlthough it can be run at any time, some of the"
			t=$t" options may have difficulties if you alter system settings manually.\n"
			t=$t"\n\Z1Documentation:\Z0     https://docs.armbian.com"
			t=$t"\n\n\Z1Support:\Z0           https://forum.armbian.com\n"
			t=$t"\n\Z1Sources:\Z0           https://github.com/armbian/config"
			show_box "Info" "$t" "18"
132
		;;
Igor Pecovnik's avatar
Cleanup    
Igor Pecovnik committed
133
	esac
134
done