Merge branch 'master' into dev

This commit is contained in:
Ben V. Brown
2023-04-09 19:47:50 +10:00
committed by GitHub

View File

@@ -1,8 +1,7 @@
#!/bin/bash #!/bin/bash
set -e set -e
TRANSLATION_DIR="../Translations" TRANSLATION_DIR="../Translations"
TRANSLATION_SCRIPT="make_translation.py" #TRANSLATION_SCRIPT="make_translation.py"
# AVAILABLE_LANGUAGES will be calculating according to json files in $TRANSLATION_DIR # AVAILABLE_LANGUAGES will be calculating according to json files in $TRANSLATION_DIR
AVAILABLE_LANGUAGES=() AVAILABLE_LANGUAGES=()
@@ -10,30 +9,64 @@ BUILD_LANGUAGES=()
AVAILABLE_MODELS=("TS100" "TS80" "TS80P" "Pinecil" "MHP30" "Pinecilv2") AVAILABLE_MODELS=("TS100" "TS80" "TS80P" "Pinecil" "MHP30" "Pinecilv2")
BUILD_MODELS=() BUILD_MODELS=()
builder_info() {
echo -e "
********************************************
IronOS Firmware
builder for Miniware + Pine64
by Ralim
********************************************"
}
# Calculate available languages
for f in "$TRANSLATION_DIR"/translation_*.json; do
AVAILABLE_LANGUAGES+=("$(echo "$f" | tr "[:lower:]" "[:upper:]" | sed "s/[^_]*_//" | sed "s/\.JSON//g")")
done
usage() { usage() {
echo "Usage : $(basename "$0") [-l <LANG_CODE>] [-m <TS100|TS80|TS80P|Pinecil|MHP30>] [-h] builder_info
echo -e "
Usage :
$(basename "$0") [-l <LANG_CODES>] [-m <MODELS>] [-h]
Parameters : Parameters :
-l LANG_CODE : Force a specific language (E.g. : EN, FR, NL_BE, ...) -l LANG_CODE : Force a specific language (${AVAILABLE_LANGUAGES[*]})
-m MODEL : Force a specific model (E.g. : TS100 or TS80) -m MODEL : Force a specific model (${AVAILABLE_MODELS[*]})
-h : Show this help message -h : Show this help message
INFO : By default, without parameters, the build is for all platforms and all languages" 1>&2 Example :
$(basename "$0") -l EN -m TS100 (Build one language and model)
$(basename "$0") -l EN -m \"TS100 MHP30\" (Build one language and multi models)
$(basename "$0") -l \"DE EN\" -m \"TS100 MHP30\" (Build multi languages and models)
INFO :
By default, without parameters, the build is for all platforms and all languages
" 1>&2
exit 1 exit 1
} }
StartBuild(){
read -n 1 -r -s -p $'Press Enter to start the building process...\n'
}
checkLastCommand() { checkLastCommand() {
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
echo " [Success]" echo " [Success]"
echo "*********************************************" echo "********************************************"
else else
forceExit forceExit "checkLastCommand"
fi fi
} }
forceExit() { forceExit() {
echo " [Error]" if [ -n "$*" ]; then
echo "*********************************************" echo -e "\n\n [Error]: $*"
else
echo " [Error]"
fi
echo "********************************************"
echo " -- Stop on error --" echo " -- Stop on error --"
exit 1 exit 1
} }
@@ -49,72 +82,86 @@ isInArray() {
return 1 return 1
} }
while getopts h:l:m: option; do declare -a margs=()
declare -a largs=()
while getopts "h:l:m:" option; do
case "${option}" in case "${option}" in
h) h)
usage usage
;; ;;
l) l)
LANGUAGEREQ=${OPTARG} set -f
;; IFS=' '
m) largs=($OPTARG)
MODEL=${OPTARG} ;;
;; m)
*) set -f
usage IFS=' '
margs=($OPTARG)
;;
*)
usage
;; ;;
esac esac
done done
shift $((OPTIND - 1)) shift $((OPTIND - 1))
builder_info
echo "*********************************************"
echo " Builder for the"
echo " Alternate Open Source Firmware"
echo " for Miniware + Pine64"
echo " by Ralim"
echo " "
echo "*********************************************"
# Calculate available languages
for f in "$TRANSLATION_DIR"/translation_*.json; do
AVAILABLE_LANGUAGES+=("$(echo "$f" | tr "[:lower:]" "[:upper:]" | sed "s/[^_]*_//" | sed "s/\.JSON//g")")
done
# Checking requested language # Checking requested language
echo "Available languages :" echo -n "Available languages :"
echo " ${AVAILABLE_LANGUAGES[*]}" echo " ${AVAILABLE_LANGUAGES[*]}"
echo "Requested languages :" echo -n "Requested languages : "
if [ -n "$LANGUAGEREQ" ]; then if ((${#largs[@]})); then
if isInArray "$LANGUAGEREQ" "${AVAILABLE_LANGUAGES[@]}"; then for i in "${largs[@]}"; do
echo " $LANGUAGEREQ" i=$(echo "${i}" | tr '[:lower:]' '[:upper:]')
BUILD_LANGUAGES+=("$LANGUAGEREQ") if isInArray "$i" "${AVAILABLE_LANGUAGES[@]}"; then
else echo -n "$i "
echo " $LANGUAGEREQ doesn't exist" BUILD_LANGUAGES+=("$i")
forceExit else
fi forceExit "Language '$i' is unknown. Check and use only from the available languages."
else fi
echo " [ALL LANGUAGES]" done
echo ""
fi
if [ -z "$BUILD_LANGUAGES" ]; then
echo " No custom languages selected."
echo " Building: [ALL LANGUAGES]"
BUILD_LANGUAGES+=("${AVAILABLE_LANGUAGES[@]}") BUILD_LANGUAGES+=("${AVAILABLE_LANGUAGES[@]}")
fi fi
echo "*********************************************" echo "********************************************"
# Checking requested model # Checking requested model
echo "Available models :" echo -n "Available models :"
echo " ${AVAILABLE_MODELS[*]}" echo " ${AVAILABLE_MODELS[*]}"
echo "Requested models :" echo -n "Requested models : "
if [ -n "$MODEL" ]; then if ((${#margs[@]})); then
if isInArray "$MODEL" "${AVAILABLE_MODELS[@]}"; then for i in "${margs[@]}"; do
echo " $MODEL"
BUILD_MODELS+=("$MODEL") if [[ "$i" != "Pinecil" ]] && [[ "$i" != "Pinecilv2" ]]; then # Dirty. Need to adapt the Build process to use upper cases only
else i=$(echo "${i}" | tr '[:lower:]' '[:upper:]')
echo " $MODEL doesn't exist" fi
forceExit
fi if isInArray "$i" "${AVAILABLE_MODELS[@]}"; then
else echo -n "$i "
echo " [ALL MODELS]" BUILD_MODELS+=("$i")
else
forceExit "Model '$i' is unknown. Check and use only from the available models."
fi
done
echo ""
fi
if [ -z "$BUILD_MODELS" ]; then
echo " No custom models selected."
echo " Building: [ALL MODELS]"
BUILD_MODELS+=("${AVAILABLE_MODELS[@]}") BUILD_MODELS+=("${AVAILABLE_MODELS[@]}")
fi fi
echo "*********************************************"
echo "********************************************"
##
#StartBuild
if [ ${#BUILD_LANGUAGES[@]} -gt 0 ] && [ ${#BUILD_MODELS[@]} -gt 0 ]; then if [ ${#BUILD_LANGUAGES[@]} -gt 0 ] && [ ${#BUILD_MODELS[@]} -gt 0 ]; then
echo "Cleaning previous builds" echo "Cleaning previous builds"
@@ -129,8 +176,7 @@ if [ ${#BUILD_LANGUAGES[@]} -gt 0 ] && [ ${#BUILD_MODELS[@]} -gt 0 ]; then
checkLastCommand checkLastCommand
done done
else else
echo "Nothing to build. (no model or language specified)" forceExit "Nothing to build. (no model or language specified)"
forceExit
fi fi
echo " -- Firmwares successfully generated --" echo " -- Firmwares successfully generated --"
echo "End..." echo "End..."