143 lines
4.3 KiB
Bash
Executable File
143 lines
4.3 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Version 1.0.1 Build 10
|
|
#
|
|
# config.sh - multi-language support configuration script
|
|
# Definition of absolute paths etc.
|
|
# This file is 'included' in all scripts.
|
|
#
|
|
#############################################################################
|
|
# Change log:
|
|
# 31 May 2018, XPila, Initial
|
|
# 17 Dec. 2021, 3d-gussner, Change default Arduino path to by PF-build.sh
|
|
# created one
|
|
# Prepare to use one config file for all languages
|
|
# 11 Jan. 2022, 3d-gussner, Added version and Change log colored output
|
|
# Use `git rev-list --count HEAD config.sh`
|
|
# to get Build Nr
|
|
# Check if variables are set by other scripts
|
|
# and use these. More flexible for different build
|
|
# scripts
|
|
# Check correctly if files or dirs exist
|
|
# 10 Feb. 2022, 3d-gussner, Add SRCDIR for compatibility with build server
|
|
#############################################################################
|
|
#
|
|
if [ -z "$SRCDIR" ]; then
|
|
export SRCDIR=".."
|
|
fi
|
|
|
|
LNGDIR="$( cd "$(dirname "$0")" ; pwd -P )"
|
|
export LNGDIR=$LNGDIR
|
|
|
|
# Arduino main folder:
|
|
if [ -z "$ARDUINO" ]; then
|
|
export ARDUINO=../../PF-build-env-1.0.6/1.8.5-1.0.4-linux-64 #C:/arduino-1.8.5
|
|
fi
|
|
#
|
|
# AVR gcc tools:
|
|
if [ -z "$OBJCOPY" ]; then
|
|
export OBJCOPY=$ARDUINO/hardware/tools/avr/bin/avr-objcopy
|
|
fi
|
|
#
|
|
# Output folder:
|
|
if [ -z "$OUTDIR" ]; then
|
|
export OUTDIR="../../Prusa-Firmware-build"
|
|
fi
|
|
#
|
|
# Output elf file:
|
|
if [ -z "$INOELF" ]; then
|
|
export INOELF="$OUTDIR/Firmware.ino.elf"
|
|
fi
|
|
#
|
|
# Output hex file:
|
|
if [ -z "$INOHEX" ]; then
|
|
export INOHEX="$OUTDIR/Firmware.ino.hex"
|
|
fi
|
|
#
|
|
# Generated multi-language hex file prefix:
|
|
if [ -z "$INTLHEX" ]; then
|
|
export INTLHEX="$LNGDIR/Firmware-intl"
|
|
fi
|
|
#
|
|
# Set default languages
|
|
if [ -z "$LANGUAGES" ]; then
|
|
export LANGUAGES="cs de es fr it pl"
|
|
fi
|
|
#
|
|
# Check for community languages
|
|
MAX_COMMINITY_LANG=10 # Total 16 - 6 default
|
|
COMMUNITY_LANGUAGES=""
|
|
#Search Firmware/config.h for active community group
|
|
COMMUNITY_LANG_GROUP=$(grep --max-count=1 "^#define COMMUNITY_LANG_GROUP" $SRCDIR/Firmware/config.h| cut -d ' ' -f3)
|
|
|
|
# Search Firmware/config.h for active community languanges
|
|
if [ "$COMMUNITY_LANG_GROUP" = "1" ]; then
|
|
COMMUNITY_LANGUAGES=$(grep --max-count=$MAX_COMMINITY_LANG "^#define COMMUNITY_LANG_GROUP1_" $SRCDIR/Firmware/config.h| cut -d '_' -f4 |cut -d ' ' -f1 |tr '[:upper:]' '[:lower:]'| tr '\n' ' ')
|
|
elif [ "$COMMUNITY_LANG_GROUP" = "2" ]; then
|
|
COMMUNITY_LANGUAGES=$(grep --max-count=$MAX_COMMINITY_LANG "^#define COMMUNITY_LANG_GROUP2_" $SRCDIR/Firmware/config.h| cut -d '_' -f4 |cut -d ' ' -f1 |tr '[:upper:]' '[:lower:]'| tr '\n' ' ')
|
|
elif [ "$COMMUNITY_LANG_GROUP" = "3" ]; then
|
|
COMMUNITY_LANGUAGES=$(grep --max-count=$MAX_COMMINITY_LANG "^#define COMMUNITY_LANG_GROUP3_" $SRCDIR/Firmware/config.h| cut -d '_' -f4 |cut -d ' ' -f1 |tr '[:upper:]' '[:lower:]'| tr '\n' ' ')
|
|
fi
|
|
|
|
# End of customization
|
|
######################
|
|
|
|
if [ -z "$COMMUNITY_LANGUAGES" ]; then
|
|
export COMMUNITY_LANGUAGES="$COMMUNITY_LANGUAGES"
|
|
fi
|
|
|
|
if [ ! -t 2 -o "$TERM" = "dumb" ]; then
|
|
NO_COLOR=1
|
|
fi
|
|
|
|
color()
|
|
{
|
|
color=$1
|
|
shift
|
|
if [ "$NO_COLOR" = 0 -o -z "$NO_COLOR" ]; then
|
|
echo "$(tput setaf $color)$*$(tput sgr 0)"
|
|
else
|
|
echo "$*"
|
|
fi
|
|
}
|
|
|
|
ok() { color 2 "OK"; }
|
|
ng() { color 1 "NG!"; }
|
|
|
|
color 2 "config.sh started" >&2
|
|
|
|
_err=0
|
|
|
|
echo -n " Arduino main folder: " >&2
|
|
if [ -d $ARDUINO ]; then ok >&2; else ng >&2; _err=1; fi
|
|
|
|
echo " AVR gcc tools:" >&2
|
|
echo -n " objcopy " >&2
|
|
if [ -e $OBJCOPY ]; then ok >&2; else ng >&2; _err=3; fi
|
|
|
|
echo -n " Output folder: " >&2
|
|
if [ -d $OUTDIR ]; then ok >&2; else ng >&2; _err=5; fi
|
|
|
|
echo -n " Output elf file: " >&2
|
|
if [ -e $INOELF ]; then ok >&2; else ng >&2; _err=7; fi
|
|
|
|
echo -n " Output hex file: " >&2
|
|
if [ -e $INOHEX ]; then ok >&2; else ng >&2; _err=8; fi
|
|
|
|
echo -n " Intl hex file prefix: " >&2
|
|
if [ -n $INTLHEX ]; then ok >&2; else ng >&2; _err=8; fi
|
|
|
|
echo -n " Languages: " >&2
|
|
color 2 "$LANGUAGES" >&2
|
|
|
|
echo -n " Community languages: " >&2
|
|
color 2 "$COMMUNITY_LANGUAGES" >&2
|
|
|
|
if [ $_err -eq 0 ]; then
|
|
color 2 "config.sh finished with success" >&2
|
|
export CONFIG_OK=1
|
|
else
|
|
color 1 "config.sh finished with errors!" >&2
|
|
export CONFIG_OK=0
|
|
fi
|