From e1f1a57adedb7a2c105d310918c4c6f117828de5 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Tue, 15 Oct 2024 21:13:15 -0600 Subject: [PATCH] Add support for generating appstream data --- config.sh | 15 +++++++++++++++ cook.sh | 15 --------------- repo.sh | 34 +++++++++++++++++++++++++++++++++- 3 files changed, 48 insertions(+), 16 deletions(-) diff --git a/config.sh b/config.sh index f518e5bac..dee008f18 100755 --- a/config.sh +++ b/config.sh @@ -54,3 +54,18 @@ fi export FIND export STAT + +if [ ! "$(uname -s)" = "Redox" ] +then +function docgen { + CC=cc AR=ar RANLIB=ranlib cargo run --release --manifest-path "$ROOT/docgen/Cargo.toml" --bin docgen -- "$@" +} + +function pkg { + CC=cc AR=ar RANLIB=ranlib cargo run --release --manifest-path "$ROOT/pkgutils/Cargo.toml" --bin pkg -- "$@" +} + +function pkgar { + CC=cc AR=ar RANLIB=ranlib cargo run --release --manifest-path "$ROOT/pkgar/Cargo.toml" --bin pkgar -- "$@" +} +fi \ No newline at end of file diff --git a/cook.sh b/cook.sh index 22445a048..408c7ee1d 100755 --- a/cook.sh +++ b/cook.sh @@ -20,21 +20,6 @@ else SHASUM="shasum -a 256" fi -if [ ! "$(uname -s)" = "Redox" ] -then -function docgen { - CC=cc AR=ar RANLIB=ranlib cargo run --release --manifest-path "$ROOT/docgen/Cargo.toml" --bin docgen -- "$@" -} - -function pkg { - CC=cc AR=ar RANLIB=ranlib cargo run --release --manifest-path "$ROOT/pkgutils/Cargo.toml" --bin pkg -- "$@" -} - -function pkgar { - CC=cc AR=ar RANLIB=ranlib cargo run --release --manifest-path "$ROOT/pkgar/Cargo.toml" --bin pkgar -- "$@" -} -fi - function usage { echo "cook.sh $1 " >&2 echo " dist" >&2 diff --git a/repo.sh b/repo.sh index a0adabed4..64fc012ae 100755 --- a/repo.sh +++ b/repo.sh @@ -4,10 +4,14 @@ shopt -s nullglob source config.sh +APPSTREAM="0" recipes="" for arg in "${@:1}" do - if [ "$arg" == "--debug" ] + if [ "$arg" == "--appstream" ] + then + APPSTREAM="1" + elif [ "$arg" == "--debug" ] then DEBUG=--debug elif [ "$arg" == "--nonstop" ] @@ -115,6 +119,8 @@ done mkdir -p "$REPO" +APPSTREAM_SOURCES=() + for recipe in $recipes do recipe_path=`target/release/find_recipe $recipe` @@ -133,8 +139,34 @@ do echo -e "\033[01;38;5;155mrepo - publishing $recipe\033[0m" >&2 cp -v "${COOKBOOK_STAGE}.pkgar" "$REPO/$recipe.pkgar" fi + + if [ -e "${COOKBOOK_STAGE}/usr/share/metainfo" ] + then + APPSTREAM_SOURCES+=("${COOKBOOK_STAGE}") + fi done +if [ "${APPSTREAM}" == "1" ] +then + echo -e "\033[01;38;5;155mrepo - generating appstream data\033[0m" >&2 + + APPSTREAM_ROOT="$ROOT/build/${TARGET}/appstream" + APPSTREAM_PKG="$REPO/appstream.pkgar" + rm -rf "${APPSTREAM_ROOT}" "${APPSTREAM_PKG}" + mkdir -p "${APPSTREAM_ROOT}" + if [ -n "${APPSTREAM_SOURCES}" ] + then + appstreamcli compose \ + --origin=pkgar \ + --result-root="${APPSTREAM_ROOT}" \ + "${APPSTREAM_SOURCES[@]}" + fi + pkgar create \ + --archive "${APPSTREAM_PKG}" \ + --skey "${ROOT}/build/id_ed25519.toml" \ + "${APPSTREAM_ROOT}" +fi + echo -e "\033[01;38;5;155mrepo - generating repo.toml\033[0m" >&2 echo "[packages]" > "$REPO/repo.toml"