11#! /bin/bash
22
3- # Adres projektu i główny skrypt
4- PROJECT_URL =" https://raw.githubusercontent.com/DevOpsTerminal/hello/main"
3+ # Konfiguracja źródeł
4+ PROJECT_BASE_URL =" https://raw.githubusercontent.com/DevOpsTerminal/hello/main"
55SCRIPT_NAME=" hello.sh"
66CHECKSUM_NAME=" checksums.sha256"
77
8- # Funkcja do logowania z kolorami
8+ # Alternatywne źródło (opcjonalne)
9+ ALTERNATIVE_BASE_URL=" https://hello.devopsterminal.com"
10+
11+ # Funkcje logowania z kolorami
912log_error () {
1013 echo -e " \e[31m[BŁĄD]\e[0m $1 " >&2
1114}
@@ -18,20 +21,57 @@ log_info() {
1821 echo -e " \e[34m[INFO]\e[0m $1 "
1922}
2023
24+ # Funkcja pobierająca sumę kontrolną
25+ fetch_checksum () {
26+ local urls=(
27+ " ${PROJECT_BASE_URL} /${CHECKSUM_NAME} "
28+ " ${ALTERNATIVE_BASE_URL} /${CHECKSUM_NAME} "
29+ )
30+
31+ for url in " ${urls[@]} " ; do
32+ log_info " Próba pobrania sumy kontrolnej z: $url "
33+ local checksum=$( curl -sSL " $url " 2> /dev/null | grep " ${SCRIPT_NAME} " | awk ' {print $1}' )
34+
35+ if [ -n " $checksum " ]; then
36+ echo " $checksum "
37+ return 0
38+ fi
39+ done
40+
41+ return 1
42+ }
43+
44+ # Funkcja pobierająca skrypt
45+ fetch_script () {
46+ local urls=(
47+ " ${PROJECT_BASE_URL} /${SCRIPT_NAME} "
48+ " ${ALTERNATIVE_BASE_URL} /${SCRIPT_NAME} "
49+ )
50+
51+ for url in " ${urls[@]} " ; do
52+ log_info " Próba pobrania skryptu z: $url "
53+ if curl -sSL " $url " -o " ${SCRIPT_NAME} " 2> /dev/null; then
54+ return 0
55+ fi
56+ done
57+
58+ return 1
59+ }
60+
2161# Funkcja pobierająca i weryfikująca sumę kontrolną
2262download_and_verify () {
2363 # Pobierz sumę kontrolną
24- log_info " Pobieranie sumy kontrolnej..."
25- local remote_checksum=$( curl -sSL " ${PROJECT_URL} /${CHECKSUM_NAME} " | grep " ${SCRIPT_NAME} " | awk ' {print $1}' )
26-
27- if [ -z " $remote_checksum " ]; then
28- log_error " Nie udało się pobrać sumy kontrolnej!"
64+ local remote_checksum
65+ if ! remote_checksum=$( fetch_checksum) ; then
66+ log_error " Nie udało się pobrać sumy kontrolnej z żadnego źródła!"
2967 return 1
3068 fi
3169
3270 # Pobierz skrypt
33- log_info " Pobieranie skryptu instalacyjnego..."
34- curl -sSL " ${PROJECT_URL} /${SCRIPT_NAME} " > " ${SCRIPT_NAME} "
71+ if ! fetch_script; then
72+ log_error " Nie udało się pobrać skryptu z żadnego źródła!"
73+ return 1
74+ fi
3575
3676 # Sprawdź sumę kontrolną
3777 log_info " Weryfikacja sumy kontrolnej..."
0 commit comments