From 33c423b90305b5f382b3ed2a5902db3a09209a55 Mon Sep 17 00:00:00 2001 From: Laurent Bonnans Date: Thu, 2 Apr 2020 17:06:16 +0200 Subject: Fix envsetup when run in zsh Now also works with zsh < 5.5 Signed-off-by: Laurent Bonnans --- scripts/envsetup.sh | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/scripts/envsetup.sh b/scripts/envsetup.sh index a7ee877..c12f193 100755 --- a/scripts/envsetup.sh +++ b/scripts/envsetup.sh @@ -6,15 +6,23 @@ BUILDDIR="build" DISTRO="poky-sota-systemd" BASE_CONF="local.conf.base.append" +if [ -n "$ZSH_VERSION" ]; then + # be more compatible with bash + setopt shwordsplit +fi + # A definition of a dictionary with a list of configuration files that must be appended # to resulting conf/local.conf file for each particular distribution. -declare -A supported_distros=( - ["poky-sota-systemd"]="local.conf.systemd.append" - ["poky-sota"]="local.conf.base.append" - ["poky"]="local.conf.systemd.append local.conf.nonostree.append" -) +declare -A supported_distros +supported_distros[poky-sota-systemd]="local.conf.systemd.append" +supported_distros[poky-sota]="local.conf.base.append" +supported_distros[poky]="local.conf.systemd.append local.conf.nonostree.append" + +usage () { + echo "Usage: ${SCRIPT} [builddir] [distro=< poky-sota-systemd | poky-sota | poky >]" +} -[[ "$#" -lt 1 ]] && { echo "Usage: ${SCRIPT} [builddir] [distro=< poky-sota-systemd | poky-sota | poky >]"; return 1; } +[[ "$#" -lt 1 ]] && { usage; return 1; } [[ "$#" -ge 2 ]] && { BUILDDIR="$2"; } [[ "$#" -eq 3 ]] && { DISTRO="$3"; } @@ -35,23 +43,27 @@ fi METADIR=${METADIR:-${SOURCEDIR}/../..} if [[ ! -f "${BUILDDIR}/conf/local.conf" ]]; then - declare -a DISTRO_CONFIGS=${supported_distros[$DISTRO]} - [[ -n ${DISTRO_CONFIGS[@]} ]] && { echo "Using (${DISTRO_CONFIGS[*]}) for the specified distro '$DISTRO'"; } || { echo "The specified distro $DISTRO is not supported"; return 1; } + if [ -z "${supported_distros[$DISTRO]}" ]; then + echo "The specified distro $DISTRO is not supported" + usage + return 1 + fi source "$METADIR/poky/oe-init-build-env" "$BUILDDIR" echo "METADIR := \"\${@os.path.abspath('${METADIR}')}\"" >> conf/bblayers.conf cat "${METADIR}/meta-updater/conf/include/bblayers/sota.inc" >> conf/bblayers.conf cat "${METADIR}/meta-updater/conf/include/bblayers/sota_${MACHINE}.inc" >> conf/bblayers.conf + sed -e "s/##MACHINE##/$MACHINE/g" \ -e "s/##DISTRO##/$DISTRO/g" \ "${METADIR}/meta-updater/conf/$BASE_CONF" >> conf/local.conf - for config in ${DISTRO_CONFIGS[@]}; do + for config in ${supported_distros[$DISTRO]}; do if [[ "$BASE_CONF" != "$config" ]]; then cat "${METADIR}/meta-updater/conf/$config" >> conf/local.conf fi done else source "$METADIR/poky/oe-init-build-env" "$BUILDDIR" -fi \ No newline at end of file +fi -- cgit v1.2.3-54-g00ecf