Merge branch 'master' into dev
This commit is contained in:
176
source/build.sh
176
source/build.sh
@@ -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..."
|
||||||
|
|||||||
Reference in New Issue
Block a user