From baa8c47ffa97ae25077d205432bec0c549b27319 Mon Sep 17 00:00:00 2001 From: Arcitec <38923130+Arcitec@users.noreply.github.com> Date: Tue, 9 May 2023 18:41:40 +0200 Subject: [PATCH] feat: automatic repo version selection via YAML configuration You can now define your custom repos with the `%FEDORA_VERSION%` variable, to automatically use the correct repo version, so that you never have to maintain their custom URLs again in the future. --- build.sh | 4 ++++ recipe.yml | 7 +++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/build.sh b/build.sh index a5bf635..dfc1342 100644 --- a/build.sh +++ b/build.sh @@ -12,11 +12,15 @@ get_yaml_string() { yq -- "$1" "$RECIPE_FILE" } +# Read configuration variables. +fedora_version="$(get_yaml_string '.fedora-version')" + # Add custom repos. get_yaml_array repos '.extrarepos[]' if [[ ${#repos[@]} -gt 0 ]]; then echo "-- Adding repos defined in recipe.yml --" for repo in "${repos[@]}"; do + repo="${repo//%FEDORA_VERSION%/${fedora_version}}" wget "$repo" -P /etc/yum.repos.d/ done echo "---" diff --git a/recipe.yml b/recipe.yml index 74548fe..f6ac6f4 100644 --- a/recipe.yml +++ b/recipe.yml @@ -26,9 +26,12 @@ scripts: # A list of urls of ".repo" files that should be added to your system. # This is the proper way to add custom COPR repos to your image. +# Tip: Use `%FEDORA_VERSION%` instead of static Fedora version numbers, so that +# your repos automatically use the Fedora version defined in `fedora-version`, +# which greatly simplifies future maintenance of your custom recipe. extrarepos: - # example: - # - https://copr.fedorainfracloud.org/coprs/atim/starship/repo/fedora-38/atim-starship-fedora-38.repo + # Example (which also demonstrates version number expansion): + # - https://copr.fedorainfracloud.org/coprs/atim/starship/repo/fedora-%FEDORA_VERSION%/atim-starship-fedora-%FEDORA_VERSION%.repo # These RPMs will be removed from the system image. This step happens during # image build, before installing custom RPMs (from the "rpm-install" category).