debian-config 4.1 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


#-----------------------------------------------------------------------------------------------------------------------------------------#
33
# load functions, local first
34

35
36
37
38
39
40
41
42
43
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
44

45
46
47
48
49
50
51
52
53
54
55
56
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

# collect info
main "$@"
57
58


59
#-----------------------------------------------------------------------------------------------------------------------------------------#
Igor Pecovnik's avatar
Igor Pecovnik committed
60
# Main menu
61
#
Igor Pecovnik's avatar
Cleanup    
Igor Pecovnik committed
62
63
while true
do
Igor Pecovnik's avatar
Igor Pecovnik committed
64
	LIST=()
65

66
67
68
	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
69
70
	LIST+=( "Software" "System and 3rd party software install" )
	LIST+=( "Help" "Documentation, support, sources" )
71

72
73
	# count number of menu items to adjust window size
	LISTLENGHT="$((11+${#LIST[@]}/2))"
Igor Pecovnik's avatar
Igor Pecovnik committed
74
	BOXLENGHT=${#LIST[@]}
75
76
	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
77

Igor Pecovnik's avatar
Igor Pecovnik committed
78
79
80
	# main dialog routine
	DIALOG_CANCEL=1
	DIALOG_ESC=255
Igor Pecovnik's avatar
Igor Pecovnik committed
81
82
	TITLELENGHT=${#MENUTITLE}

83
	[[ "$TITLELENGHT" -lt 60 ]] && TITLELENGHT="60"
84

Igor Pecovnik's avatar
RFC #2    
Igor Pecovnik committed
85
	exec 3>&1
86
	selection=$(dialog --colors --backtitle "$BACKTITLE" --title " armbian-config " --clear \
Igor Pecovnik's avatar
Igor Pecovnik committed
87
	--cancel-label "Cancel" --menu "\n$MENUTITLE \n \nSupport: \Z1https://www.armbian.com\Z0\n " \
Igor Pecovnik's avatar
Igor Pecovnik committed
88
	$LISTLENGHT ${TITLELENGHT} $BOXLENGHT "${LIST[@]}" 2>&1 1>&3)
Igor Pecovnik's avatar
RFC #2    
Igor Pecovnik committed
89
90
	exit_status=$?
	exec 3>&-
91

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

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

Igor Pecovnik's avatar
RFC #2    
Igor Pecovnik committed
96
97
	case $selection in

98
99
		"System" )
			submenu_settings
100
		;;
101
102

		"Network" )
103
104
			submenu_networking
		;;
105
106
107

		"Personal" )
			submenu_personal
108
		;;
109
110
111

		"Software" )
			submenu_software
112
		;;
113

114
		"Help" )
Igor Pecovnik's avatar
Igor Pecovnik committed
115
			show_box "Info" "This tool provides a straightforward way of configuring the \Z4${BOARD_NAME}\Z0. \
116
			\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
117
118
			\n\Z1Documentation:\Z0     https://docs.armbian.com\n\n\Z1Support:\Z0           https://forum.armbian.com\n
			\n\Z1Sources:\Z0           https://git.armbian.com" "18"
119
		;;
Igor Pecovnik's avatar
Cleanup    
Igor Pecovnik committed
120
	esac
121
done
122
#-----------------------------------------------------------------------------------------------------------------------------------------#