-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinstall.sh
193 lines (177 loc) · 7.25 KB
/
install.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
#!/bin/bash
# Controleer of de benodigde tools zijn geïnstalleerd
echo "Stap 1: Controleer of de benodigde tools zijn geïnstalleerd"
VEREISTE_PROGRAMMAS=("ca-certificates" "curl" "dialog" "git")
for vereiste_programma in "${VEREISTE_PROGRAMMAS[@]}"; do
echo "---------------------------------------------------------------------"
echo "Controleer of $vereiste_programma geïnstalleerd is."
if ! command -v $vereiste_programma &> /dev/null; then
echo "$vereiste_programma is niet geïnstalleerd."
read -p "Wil je $vereiste_programma installeren? (y/n Beëindigen): " install_choice
if [[ "$install_choice" =~ ^[Yy]$ ]]; then
if command -v sudo &> /dev/null; then
if command -v apt &> /dev/null; then
sudo apt update && sudo apt install -y $vereiste_programma
elif command -v yum &> /dev/null; then
sudo yum install -y $vereiste_programma
elif command -v dnf &> /dev/null; then
sudo dnf install -y $vereiste_programma
else
echo "Geen bekende pakketbeheerder gevonden. Installeer $vereiste_programma handmatig."
exit 1
fi
else
if command -v apt &> /dev/null; then
apt update && apt install -y $vereiste_programma
elif command -v yum &> /dev/null; then
yum install -y $vereiste_programma
elif command -v dnf &> /dev/null; then
dnf install -y $vereiste_programma
else
echo "Geen bekende pakketbeheerder gevonden. Installeer $vereiste_programma handmatig."
exit 1
fi
fi
else
echo " $vereiste_programma is vereist voor dit script. Beëindigen."
exit 1
fi
else
echo "$vereiste_programma is er."
fi
done
echo "---------------------------------------------------------------------"
echo "Stap 2: Voeg Docker's officiële GPG-sleutel toe"
if command -v sudo &> /dev/null; then
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
else
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
fi
echo "---------------------------------------------------------------------"
echo "Stap 3: Voeg de Docker-repository toe aan Apt-bronnen"
if command -v sudo &> /dev/null; then
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
else
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null
apt update
fi
echo "---------------------------------------------------------------------"
echo "Stap 4: Installeer Docker en benodigde tools"
VEREISTE_PROGRAMMAS=("docker-ce" "docker-ce-cli" "containerd.io" "docker-buildx-plugin" "docker-compose-plugin")
for vereiste_programma in "${VEREISTE_PROGRAMMAS[@]}"; do
echo "---------------------------------------------------------------------"
echo "Controleer of $vereiste_programma geïnstalleerd is."
if ! command -v $vereiste_programma &> /dev/null; then
echo "$vereiste_programma is niet geïnstalleerd."
read -p "Wil je $vereiste_programma installeren? (y/n Beëindigen): " install_choice
if [[ "$install_choice" =~ ^[Yy]$ ]]; then
if command -v sudo &> /dev/null; then
if command -v apt &> /dev/null; then
sudo apt update && sudo apt install -y $vereiste_programma
elif command -v yum &> /dev/null; then
sudo yum install -y $vereiste_programma
elif command -v dnf &> /dev/null; then
sudo dnf install -y $vereiste_programma
else
echo "Geen bekende pakketbeheerder gevonden. Installeer $vereiste_programma handmatig."
exit 1
fi
else
if command -v apt &> /dev/null; then
apt update && apt install -y $vereiste_programma
elif command -v yum &> /dev/null; then
yum install -y $vereiste_programma
elif command -v dnf &> /dev/null; then
dnf install -y $vereiste_programma
else
echo "Geen bekende pakketbeheerder gevonden. Installeer $vereiste_programma handmatig."
exit 1
fi
fi
else
echo " $vereiste_programma is vereist voor dit script. Beëindigen."
exit 1
fi
else
echo "$vereiste_programma is er."
fi
done
read -p "Manage Docker as a non-root user? (y/n): " install_choice
if [[ "$install_choice" =~ ^[Yy]$ ]]; then
if command -v sudo &> /dev/null; then
sudo groupadd docker
sudo usermod -aG docker $USER
else
groupadd docker
usermod -aG docker $USER
fi
newgrp docker
fi
echo "---------------------------------------------------------------------"
echo "Stap 5: Verwijder ongewenste mappen"
read -p "druk op enter"
# Haal een lijst van de mappen in de huidige directory
folders=(*/)
if [ ${#folders[@]} -eq 0 ]; then
echo "Geen mappen gevonden in de huidige directory."
exit 0
fi
# Maak een lijst voor dialog (label, map)
dialog_list=()
for folder in "${folders[@]}"; do
dialog_list+=("$folder" " " on)
done
# Vraag de gebruiker om mappen te selecteren
selected_folders=$(dialog --checklist "welke mappen wil je behouden? (mappen zonder * worden verwijderd):" 20 50 10 "${dialog_list[@]}" 3>&1 1>&2 2>&3)
# Controleer of de gebruiker heeft geannuleerd
if [ $? -ne 0 ]; then
echo "Actie geannuleerd."
exit 0
fi
# Zet de geselecteerde mappen in een array, verwijder quotes
IFS=' ' read -r -a keep_folders <<< "${selected_folders//\"/}"
# Loop door de mappen en verwijder degene die niet zijn geselecteerd
for folder in "${folders[@]}"; do
folder_cleaned="$folder" # Geen trailing slash verwijderen
match_found=false
for keep_folder in "${keep_folders[@]}"; do
if [[ "$folder_cleaned" == "$keep_folder" ]]; then
match_found=true
break
fi
done
if ! $match_found; then
rm -rf "$folder"
fi
done
clear
# Feedback aan gebruiker
echo "Overgebleven mappen:"
for folder in "${folders[@]}"; do
folder_cleaned="$folder"
for keep_folder in "${keep_folders[@]}"; do
if [[ "$folder_cleaned" == "$keep_folder" ]]; then
echo " - $folder"
fi
done
done
if command -v sudo &> /dev/null; then
sudo chmod +x build.sh
sudo chmod +x config.sh
else
chmod +x build.sh
chmod +x config.sh
fi
./config.sh
./build.sh