From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7347685462944776192 X-Received: by 2002:a50:bae4:0:b0:566:72b0:286a with SMTP id x91-20020a50bae4000000b0056672b0286amr15865417ede.2.1710766335880; Mon, 18 Mar 2024 05:52:15 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a50:fa88:0:b0:56b:7f53:4828 with SMTP id w8-20020a50fa88000000b0056b7f534828ls448528edr.1.-pod-prod-00-eu; Mon, 18 Mar 2024 05:52:13 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG3ICKgups93xuPtInobM53zmowTlkimBHiaMkxF62owGJ5RRwvC+Apt4VRdqpqrWvTioA0 X-Received: by 2002:a05:6402:3709:b0:568:b3dd:d73e with SMTP id ek9-20020a056402370900b00568b3ddd73emr5685925edb.10.1710766333523; Mon, 18 Mar 2024 05:52:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1710766333; cv=none; d=google.com; s=arc-20160816; b=NfB+xvR9hmK1sqwMFuLWz3RHceVlQ6fgOOXpAf4J7oEXsJVmEj9sz4eBJXCfDuQQA9 N5AvfScuf0yp3TGL2PBPzaXuTRDx+/cFUJCXyoR8JH5Ej5JiPqXnDHQO4G62bu20gQyn raIiNqBdN3jIXL/CbJQZbfnupIFk0pzXspH7tDh5s4qWFueEq13nXc/fUTTHJ5HmRlqY wslif7mqRUZOm8lXjFET7MmEfxeKW0lanmHvyACngSPaRWFEYP8qao9tTLQ9TvxyffeN PumPiT/e7GTxpP6lCqLI9Rferz9AWXU6mvl9K8xHO24lgdiGf5qtxvt7x641o1oID98V YrMg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from; bh=B92c8E5M3L46cDyzp9w7l/8ylm4pAxoO5inEEUPfoRU=; fh=7tclEdh7YbwSQowgJ6LNq720O7H5HTEaqj22NJWRE2E=; b=N2sK6SAiNnSFmnj3Hhy5Oiqr5PtCdZQ739xXNL7JxDMJ0K+EMUV9PjKpjA5Bc4LGy2 mtJ9La58Tl8/Zyj7wZEAF9Y6YJFt98xRMO5cSF5cObpgyPJ04HuDw74TT5UkW7fgmT7b eE6foZlJAiYfRcdBpgHzhVMamxPaadDXHm1AaqWd9iIolQRBLW8yxOrPkUXoB8Mpf7JE Wzcf7W7BCMi8akNwRfFK7962c3S39hhM6rOv/RvXWnlovxeseCd+mzp4i0c303RLfC/0 LZJHqrv6xWHHzdJBKpowZaTm3TBWJp31YSP2odB99nlskB3tmhJJE+wC7zv8+lwp6EPF BGYw==; dara=google.com ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of ubely@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=ubely@ilbers.de Return-Path: Received: from shymkent.ilbers.de (shymkent.ilbers.de. [85.214.156.166]) by gmr-mx.google.com with ESMTPS id p12-20020a50cd8c000000b005683aa7db8dsi969557edi.4.2024.03.18.05.52.13 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 18 Mar 2024 05:52:13 -0700 (PDT) Received-SPF: pass (google.com: domain of ubely@ilbers.de designates 85.214.156.166 as permitted sender) client-ip=85.214.156.166; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of ubely@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=ubely@ilbers.de Received: from hp15.localdomain (44-208-124-178-static.mgts.by [178.124.208.44] (may be forged)) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPSA id 42ICqCIi010835 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 18 Mar 2024 13:52:12 +0100 From: Uladzimir Bely To: isar-users@googlegroups.com Subject: [PATCH] kas: Improve script to generate kas yaml files Date: Mon, 18 Mar 2024 15:51:53 +0300 Message-ID: <20240318125206.31874-1-ubely@ilbers.de> X-Mailer: git-send-email 2.43.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=unavailable autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on shymkent.ilbers.de X-TUID: OEaGzzWVi/i7 Changes: - Avoid duplicated code. - Don't update old files if there are no real changes in them. Signed-off-by: Uladzimir Bely --- scripts/generate_yaml.sh | 89 +++++++++++++++++++++++++++++----------- 1 file changed, 64 insertions(+), 25 deletions(-) diff --git a/scripts/generate_yaml.sh b/scripts/generate_yaml.sh index e17d6d3d..8e8651a0 100755 --- a/scripts/generate_yaml.sh +++ b/scripts/generate_yaml.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash -# This software is a part of ISAR. -# Copyright (c) 2023 ilbers GmbH +# This software is a part of Isar. +# Copyright (c) 2023-2024 ilbers GmbH # Authors: # Uladzimir Bely @@ -14,52 +14,87 @@ set -e cd "$(dirname "$0")/.." HEADER="\ -# This software is a part of ISAR. -# Copyright (C) 2023 ilbers GmbH +# This software is a part of Isar. +# Copyright (C) $(date +%Y) ilbers GmbH header: version: 14" -# Scan for distro configs, except "debian-common" used only for including +update_yaml() { + yaml=${1} -DISTROS=$(find {meta,meta-isar}/conf/distro -iname *.conf -printf "%f\n" \ - | sed -e 's/.conf$//' | grep -v "debian-common" | sort) + printf "%-45s | " ${yaml} -for distro in ${DISTROS} -do - cat << _EOF_ > kas/distro/${distro}.yaml + # Use temporary file if old one not exists + if [ ! -f "${yaml}" ]; then + echo "Not existed before, saving" + mv ${yaml}_tmp ${yaml} + return + fi + + # Compare "pure" contents, without comments (e.g., copyrights, year) + old=$(grep -v "^#" ${yaml}) + new=$(grep -v "^#" ${yaml}_tmp) + + if [ "${new}" = "${old}" ]; then + echo "No real changes, keeping " + rm ${yaml}_tmp + else + echo "File changed, saving" + mv ${yaml}_tmp ${yaml} + fi +} + +make_yaml() { + dir=${1} + name=${2} + value=${3} + + yaml="kas/${dir}/${value}.yaml" + + # Generate temporary file + cat << _EOF_ > ${yaml}_tmp ${HEADER} -distro: ${distro} +${name}: ${value} _EOF_ + + update_yaml ${yaml} +} + + +# Scan for distro configs, except: +# - "debian-common" used only for including +# - "debian-sid-ports" not used currently + +DISTROS=$(find {meta,meta-isar}/conf/distro -iname *.conf -printf "%f\n" \ + | sed -e 's/.conf$//' | grep -v "debian-common\|debian-sid-ports" | sort) + +for distro in ${DISTROS} +do + make_yaml "distro" "distro" "${distro}" done -# Scan for image recipes +# Scan for image recipes, except: +# - "isar-image-installer" having more complex structure IMAGES=$(find {meta,meta-isar}/recipes-core/images -iname *.bb -printf "%f\n" \ - | sed -e 's/.bb$//' | sort) + | sed -e 's/.bb$//' | grep -v "isar-image-installer"| sort) for image in ${IMAGES} do - cat << _EOF_ > kas/image/${image}.yaml -${HEADER} - -target: ${image} -_EOF_ + make_yaml "image" "target" "${image}" done -# Scan for machine configs, except "rpi-common" used only for including +# Scan for machine configs, except: +# - "rpi-common" used only for including MACHINES=$(find meta-isar/conf/machine -iname *.conf -printf "%f\n" \ | sed -e 's/.conf$//' | grep -v "rpi-common" | sort) for machine in ${MACHINES} do - cat << _EOF_ > kas/machine/${machine}.yaml -${HEADER} - -machine: ${machine} -_EOF_ + make_yaml "machine" "machine" "${machine}" done # Generate configs for fixed list of Isar packages @@ -87,11 +122,15 @@ do package=${pkg}-\$\{KERNEL_NAME\} fi - cat << _EOF_ > kas/package/pkg_${pkg}.yaml + yaml="kas/package/pkg_${pkg}.yaml" + + cat << _EOF_ > ${yaml}_tmp ${HEADER} local_conf_header: package-${pkg}: | IMAGE_INSTALL:append = " ${package}" _EOF_ + + update_yaml ${yaml} done -- 2.43.2