made some progress and checks

This commit is contained in:
Bernd Mueller
2025-04-17 13:56:37 +02:00
parent c6640242ae
commit 3f463133e5

View File

@@ -1,4 +1,4 @@
!#/bin/env bash
#!/usr/bin/env bash
#
# firebee_setup_script.sh
#
@@ -16,43 +16,147 @@ RESET='\033[0m'
BLINK_ON="\e[?12h"
BLINK_OFF="\e[?12l"
# clear screen before output
clear
# some definitions
INST_TEMP="./tmp"
echo ""
echo -e " ${RED}**${RESET} ${YELLOW}FireBee Setup Script${RESET} ${RED}**${RESET}"
echo -e " ${YELLOW}==========================${RESET}"
echo ""
echo " This script will create a new setup for your FireBee."
echo " When it's finished, you can copy the content of DEST/* to you CompactFlash-Card"
echo ""
echo " This script relies on a working internet connection. So make sure you have"
echo " it working in first place."
echo ""
echo " What language do you want to install?"
echo -e "${BLINK_ON}"
read -p " Languages are: en, de, fr, es, it, nl, ru, cs : " LANG
echo -e "${BLINK_OFF}"
echo
fb_installer_usage() {
# clear screen before output
clear
if [[ ${LANG} == "" ]]; then
# welcome user and ask for lang. to install
echo ""
echo -e " ${RED}**${RESET} ${YELLOW}FireBee Setup Script${RESET} ${RED}**${RESET}"
echo -e " ${YELLOW}==========================${RESET}"
echo ""
echo " This script will create a new setup for your FireBee."
echo " When it's finished, you can copy the content of DEST/* to you CompactFlash-Card"
echo ""
echo " This script relies on a working internet connection. So make sure you have"
echo " it working in first place."
echo ""
echo " What language do you want to install?"
echo -e "${BLINK_ON}"
read -p " Languages are: en, de, fr, es, it, nl, ru, cs : " LANG
echo -e "${BLINK_OFF}"
echo
# give user a feedback which lang. is used
if [[ ${LANG} == "" ]]; then
echo "You didn't give any language. Going default with English"
elif [ ${LANG} == "en" ]; then
elif [ ${LANG} == "en" ]; then
echo "Okay, using English"
elif [[ ${LANG} == "de" ]]; then
elif [[ ${LANG} == "de" ]]; then
echo "Okay, using German"
elif [[ ${LANG} == "fr" ]]; then
elif [[ ${LANG} == "fr" ]]; then
echo "Okay, using French"
elif [[ ${LANG} == "es" ]]; then
elif [[ ${LANG} == "es" ]]; then
echo "Okay, using Spanish"
elif [[ ${LANG} == "it" ]]; then
elif [[ ${LANG} == "it" ]]; then
echo "Okay, using Italian"
elif [[ ${LANG} == "nl" ]]; then
elif [[ ${LANG} == "nl" ]]; then
echo "Okay, using Dutch"
elif [[ ${LANG} == "ru" ]]; then
elif [[ ${LANG} == "ru" ]]; then
echo "Okay, using Russian"
elif [[ ${LANG} == "cs" ]]; then
elif [[ ${LANG} == "cs" ]]; then
echo "Okay, using Czech"
else
else
echo -e "I'm sorry, Dave. I'm afraid I can't do \"${LANG}\"!"
fi
fi
}
fb_installer_test_mainloop() {
fb_installer_check_tmp
}
fb_installer_check_tmp() {
# check if there is a tmp dir to install and is it
# writeable by user?
# make dir if not exists
if [ ! -d "$INST_TEMP" ]; then
mkdir -p "$INST_TEMP"
# check if mkdir was successful
if [ $? -ne 0 ]; then
echo "${RED}Error${RESET}: Could not create Install-Dir '${INST_TEMP}'!"
return 1
fi
fi
# check if it is writable
if [ -w "$INST_TEMP" ]; then
# check if the directory is not empty
if [ "$(ls -A "$INST_TEMP")" ]; then
rm -rf "${INST_TEMP:?}/"*
fi
fb_installer_check_bin
else
echo "${RED}Error${RESET}: '${INST_TEMP}' is not writeable!"
return 1
fi
}
fb_installer_check_bin() {
# list of binaries we need as array
bin_needed=("wget" "git" "cp" "rm" "mv" "sed" "cut" "grep" "unzip" "install")
# Flag,
bin_avail=true
# empty list for binaries who are not available
missing_bin=()
# check if binary is available
for prog in "${bin_needed[@]}"; do
if which "$prog" &>/dev/null; then
# just continue, no output
continue
else
bin_avail=false
missing_bin+=("$prog") # add missing binary to a list
fi
done
# when every binary is there, continue to download
if ${bin_avail}; then
fb_installer_download
else
echo -e "${RED}Error${RESET}: Missing ${missing_bin[@]}! Please install it first"
exit 1
fi
}
fb_installer_download() {
# first cd into INSTALL-DIR
cd ${INST_TEMP}
# clone setup repo
echo "Cloning git repo"
git clone https://codeberg.org/firebee/FireBee_Setup.git &>/dev/null
# download latest freemint
# download bootable mint build and decompress it
wget https://tho-otto.de/snapshots/freemint/bootable/freemint-latest-col-firebee.zip &>/dev/null
unzip -d freemint freemint-latest-col-firebee.zip &>/dev/null
rm freemint-latest-col-firebee.zip &>/dev/null
}
fb_installer_install_mint() {
echo "install mint"
}
fb_installer_hidden_gems() {
# download a pre-packed nvdi, fvdi or both
#
# note: since we don't ship it by default,
# this can be enabled by adding an argument
# to the scriptname so it's kind of hidden
# and will not packed when the arguments
# are omitted
echo "none"
}
fb_installer_usage
fb_installer_test_mainloop