From patchwork Mon Mar 18 12:51:53 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Uladzimir Bely X-Patchwork-Id: 3422 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Mon, 18 Mar 2024 13:52:22 +0100 X-Sieve: CMU Sieve 2.4 Received: from mail-ej1-f60.google.com (mail-ej1-f60.google.com [209.85.218.60]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 42ICqMuq010848 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 18 Mar 2024 13:52:22 +0100 Received: by mail-ej1-f60.google.com with SMTP id a640c23a62f3a-a469d3547c7sf211926366b.0 for ; Mon, 18 Mar 2024 05:52:22 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1710766336; cv=pass; d=google.com; s=arc-20160816; b=UZxjlsrDbxFXENHstu86lErcesaijywjtOP2UwDL8VnmhYZUpvVfy85Jo7LYEw3H+a sHp4DF19wjDZSe9E37ww7ln71SOnmXZYRxiqAE55iRvTlF8A5cmHH2Vi7idvkpA3t0oa N6mc//r6Z+YN6RnFs6ep/S+mKoTOfM2FALA0eZsutPCOwEUcmR9558t2qaKPm3NZlAtS 9L93uoWMEqCpaiLPP8pp5YA6/W0MGx8foRsyow3ABbftDi3IqLLn2GMXf6LMM3DeNUYp 4wFtXPGcy/4RSTDyMARYyN67O61oTCYGY/J91Yih2gPA5JbPzVQifo9p514BNqGM39Ix it4w== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:mime-version:message-id:date :subject:to:from:sender:dkim-signature; bh=kJhYznUf5h85r1kNIKvyrEdwWTuaKejL4baxZcWkfOE=; fh=Wo3G4OaM4LPWQF+N+syJ+ekkitSAmLSgFJHoqyMGx3M=; b=zPZkqHJ/jbHbqY/6Zrb15nYkz0Hd267KXi1W3jHPOpBC4vLKI3HgRdx8m8ptM0OcdP TURAcvLF2O7iVSX/vemUfOYXbuMkZEb7BieZTWfDbEx+5A8DV0ZXHsWuumQ6QpU2Gjhb LiUfF2QBQsJ6HuHwt69k7QufnVT0sWOluutgsRvJoQXodbwEutotcBp9nT499S2cIWbh +iA2Y6R3ooJTX2Waztrp1Cz5dLIO+q3Qbzoh3Zlz0Lx8+WMe/fBYViUrzARGGeu+kpIo iZU5yueg5WoDBHxgKIZyECLenQcDqL/PWRnJJD1ASSl13y7FUEv09JqhJXkMv+2PSFjB u/PQ==; darn=isar-build.org ARC-Authentication-Results: i=2; 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20230601; t=1710766336; x=1711371136; darn=isar-build.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:x-original-authentication-results :x-original-sender:mime-version:message-id:date:subject:to:from :sender:from:to:cc:subject:date:message-id:reply-to; bh=kJhYznUf5h85r1kNIKvyrEdwWTuaKejL4baxZcWkfOE=; b=Yew/diUyO5ExoImyIqwHZtN3xyXfcv60+5n8r6UJ3p4hkPV4GcgQu++fmCWUzUyApc rAlxzbu74th4YjIwoyPkwnGB98BZrpHAXMC8WTQut7TLY2KcdoZWOcZQhrGCPFZFNm2z uEAiO+Z5iAmAj6TObdMBLPR+iOA4ptS06ddtx7HFFxISIMvo9rlFiWdwu/hYEB+TNY9U cpQT6/dW2AB9tHHZflomtYJI7EKfW99NxQu33Ia8iz5MtzDHMKZR1oefU4e4Ns70MBp/ H8A8+hyuwQPEh3zoxqIOFBVZWUOjDs7uQV7lOZ/M7zkH+VQcuB6vnuQ9EdHf4SFVWZqy 5OXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710766336; x=1711371136; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :x-original-authentication-results:x-original-sender:mime-version :message-id:date:subject:to:from:x-beenthere:x-gm-message-state :sender:from:to:cc:subject:date:message-id:reply-to; bh=kJhYznUf5h85r1kNIKvyrEdwWTuaKejL4baxZcWkfOE=; b=Hsw/4uMCz0sDqYUXh/IVLEBc+mHbMoZaBcHweOxjw4pqyE1dfXL9HnQkybr6iKd4kX 0Vu9dYr/coFBB3IhvuV6LEJiC03ei9fk7oVzyMEasCQbgY8QjtZMjA53dLKmbD/aQ5Gb oX30zgfLPbfCgERcDd4DFsTXdoyTPLY5P9qO9+17RVcSatm3QJkFd8W36TaWq6pxyjgJ bUul4nLinyYhokH+jjLMLpkgtqyXK0srWnymKAFCd27oUPBaVFexZhCkCYzBJUMN44sF xyaHNtrRR88fpBziaOH9Vnam4qS/ZhH4/4LfoUl/orXb9nwqT/UeMnMSsMh4Mq+8vFQt dMTw== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AJvYcCVX6nBR2dCGebel+tW8Kl+dw1avBilyM+3kC3a9h8J+pszVsLNlH5gRjdaeUSLION0L7SVN+HDF0TyRPK3MS3Qit6t1h38= X-Gm-Message-State: AOJu0YxbImO3BE8yUG9APPa/8bKrKmRHZvnTlENP7YIshTOWgtXqyN0M BhcqoC72skLdK1M2bnaLcFiuWvkk1fwudSviNlnHIDptTnVl8J5L X-Google-Smtp-Source: AGHT+IE5uMjfNKTsjYJgRH5hUXNRMaHdYmQLOr39WPVM4Fs8nAn+HCiOS2pX+PrYZGMvQVvK7abpow== X-Received: by 2002:a17:906:ef08:b0:a46:bde9:c868 with SMTP id f8-20020a170906ef0800b00a46bde9c868mr2919788ejs.26.1710766335828; 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-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 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; 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 X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_PASS 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-Original-Sender: ubely@ilbers.de X-Original-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 Precedence: list Mailing-list: list isar-users@googlegroups.com; contact isar-users+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: isar-users@googlegroups.com X-Google-Group-Id: 914930254986 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= 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