' then before '' until '', cleanup html and carriage return
description=$( sed -z 's/.*
//g' "/tmp/$use_flag.html" | sed -z 's/.*<\/header>//' | sed -z 's/<\/p>.*//' |sed -z 's/
.*<\/span>//g' | sed 's/<[^>]*>//g' | tr -d "\n" | xargs )
- echo -ne "\n $description" >> metadata.xml
+ echo -e "\n $description" >> metadata.xml
fi
fi
fi
@@ -293,7 +305,7 @@ if [ -n "${FETCH_METADATA}" ]; then
mariadb
mosquitto
smarthab
-
+ socat
tesla
wink
diff --git a/scripts/generate-missing-deps.sh b/scripts/generate-missing-deps.sh
index 4a87c08bca..62d667580e 100755
--- a/scripts/generate-missing-deps.sh
+++ b/scripts/generate-missing-deps.sh
@@ -346,7 +346,7 @@ if [ $# -eq 2 ] && [ "$2" == "build" ]; then
fi
########
-elif [ $# -eq 3 ] && [ "$2" == "upgrade" ]; then
+elif [ "$#" -eq 3 ] && [ "$2" == "upgrade" ] || [ "$2" == "create" ]; then
########
category="$(echo "$1" | cut -d/ -f1)"
@@ -354,25 +354,63 @@ elif [ $# -eq 3 ] && [ "$2" == "upgrade" ]; then
version="$3"
echo "feature/${category}/${package} ${version}(autogenerated)" > /tmp/commit_msg
- if [ ! -d "${category}/${package}" ] > /dev/null; then
- echo "$1 is not a valid package"
- popd > /dev/null || exit 1
- exit 1
- fi
-
- # Move to dep folder
- pushd "${category}/${package}" > /dev/null || exit
-
- #Copy ebuild
- echo -ne " \e[0;32m*\e[0m Create by copy ${package}-${version}.ebuild..."
- if cp "$( find . | grep "${package}-.*.ebuild" | sort -rV | head -n1 )" "${package}-${version}.ebuild" &> /dev/null; then
- echo -e "\e[1;32mOK\e[0m"
+ if [ "$2" == "create" ]; then
+ # Creation, create a blank generic ebuild
+
+ if [ -d "${category}/${package}" ] > /dev/null; then
+ echo "$1 already exist please use upgrade"
+ exit 1
+ fi
+ curl -s -L "https://pypi.org/pypi/${package}/json" | jq -r '.info' > "/tmp/${package}-pypi-info.json"
+ github_url="$( cat "/tmp/${package}-pypi-info.json" | jq -r '.project_urls.Repository' | grep '^https://github\.com/' )"
+ [ -z "$github_url" ] && github_url="$( cat "/tmp/${package}-pypi-info.json" | jq -r '.project_urls.Homepage' | grep '^https://github\.com/' )"
+
+ if [ -z "$github_url" ]; then
+ echo "$1 not found in pypi.org"
+ exit 1
+ fi
+
+ # Move to dep folder
+ mkdir "${category}/${package}" > /dev/null || exit
+ pushd "${category}/${package}" > /dev/null || exit
+
+ # Generate metadata.xml
+ licence="$( cat "/tmp/${package}-pypi-info.json" | jq -r '.license_expression' | grep -v "^null$" )"
+ [ -z "$licence" ] && licence="$( cat "/tmp/${package}-pypi-info.json" | jq -r '.license' | grep -v "^null$" )"
+
+ maintainer_email="$( cat "/tmp/${package}-pypi-info.json" | jq -r '.maintainer_email' | grep -v "^null$" )"
+ maintainer="$( cat "/tmp/${package}-pypi-info.json" | jq -r '.maintainer' | grep -v "^null$" )"
+ [ -z "$maintainer" ] && maintainer="${maintainer_email//<.*>/}"
+ [ -z "$maintainer" ] && maintainer="$( cat "/tmp/${package}-pypi-info.json" | jq -r '.author' | grep -v "^null$" )"
+ [ -z "$maintainer_email" ] && maintainer_email="$( cat "/tmp/${package}-pypi-info.json" | jq -r '.author_email' | grep -v "^null$" )"
+
+ echo -en "\n\n\n \n Xavier FORESTIER\n 23277701+xavierforestier@users.noreply.github.com\n \n \n $( echo "${github_url}" | sed 's/https:\/\/github.com\///' )\n ${package}\n $( [ -n "${maintainer}" ] && echo -e "\n ${maintainer}" )$( [ -n "${maintainer_email}" ] && echo -e "\n $( echo "${maintainer_email}" | sed 's/.*/' | sed 's/>$//' )" )\n \n \n" > metadata.xml
+
+ # generate a blank ebuild, with no deps
+ echo -en "# Copyright 2026 Gentoo Authors\n# Distributed under the terms of the GNU General Public License v2\n\nEAPI=8\n\nDISTUTILS_USE_PEP517=dummy\nPYTHON_COMPAT=( python3_{12..14} )\n\ninherit distutils-r1 pypi\n\nDESCRIPTION=\"$( cat "/tmp/${package}-pypi-info.json" | jq -r '.summary' )\"\nHOMEPAGE=\"${github_url} https://pypi.org/project/${package}\"\n\nLICENSE=\"${licence}\"\nSLOT=\"0\"\nKEYWORDS=\"amd64 arm arm64 x86\"\n\nRDEPEND=\"\n\"\n\nEPYTEST_PLUGINS=()\ndistutils_enable_tests pytest" > "${package}-${version}.ebuild"
+
else
- echo -e "\e[1;31mfailed\e[0m"
- popd > /dev/null || exit 3
- exit 2
+ # upgrade, copy last version as reference
+
+ if [ ! -d "${category}/${package}" ] > /dev/null; then
+ echo "$1 is not a valid package"
+ exit 1
+ fi
+
+ # Move to dep folder
+ pushd "${category}/${package}" > /dev/null || exit
+
+ #Copy ebuild
+ echo -ne " \e[0;32m*\e[0m Create by copy ${package}-${version}.ebuild..."
+ if cp "$( find . | grep "${package}-.*.ebuild" | sort -rV | head -n1 )" "${package}-${version}.ebuild" &> /dev/null; then
+ echo -e "\e[1;32mOK\e[0m"
+ else
+ echo -e "\e[1;31mfailed\e[0m"
+ popd > /dev/null || exit 3
+ exit 2
+ fi
fi
-
+
# Get pyproject and build
echo -ne " \e[0;32m*\e[0m Get github tag..."
if get_tagname "${version}"; then
@@ -389,15 +427,19 @@ elif [ $# -eq 3 ] && [ "$2" == "upgrade" ]; then
if get_pyproject "${version}"; then
if cat "/tmp/${package}-${version}-pyproject.toml" | grep -q "build-backend = \"poetry.core.masonry.api\""; then
echo -e "\e[1;32mOK\e[0m (Found \e[1;34mpoetry\e[0m)"
+ sed -i 's/^DISTUTILS_USE_PEP517=.*$/DISTUTILS_USE_PEP517=poetry/' "${package}-${version}.ebuild"
update_ebuild_poetry_v1 "${version}" || update_ebuild_setuptools "${version}"
elif cat "/tmp/${package}-${version}-pyproject.toml" | grep -q "build-backend = \"hatchling.build\""; then
echo -e "\e[1;32mOK \e[0m (Found \e[1;34mhatchling\e[0m)"
+ sed -i 's/^DISTUTILS_USE_PEP517=.*$/DISTUTILS_USE_PEP517=hatchling/' "${package}-${version}.ebuild"
update_ebuild_hatchling "${version}"
elif cat "/tmp/${package}-${version}-pyproject.toml" | grep -q "build-backend = \"uv_build\""; then
echo -e "\e[1;32mOK \e[0m (Found \e[1;34muv-build\e[0m)"
+ sed -i 's/^DISTUTILS_USE_PEP517=.*$/DISTUTILS_USE_PEP517=uv-build/' "${package}-${version}.ebuild"
update_ebuild_hatchling "${version}"
elif cat "/tmp/${package}-${version}-pyproject.toml" | grep -q "build-backend = \"setuptools.build_meta\""; then
echo -e "\e[1;32mOK\e[0m (Found \e[1;34msetuptools\e[0m)"
+ sed -i 's/^DISTUTILS_USE_PEP517=.*$/DISTUTILS_USE_PEP517=setuptools/' "${package}-${version}.ebuild"
update_ebuild_setuptools "${version}"
else
echo -e "\e[1;31mUnrecognized\e[0m"
@@ -421,7 +463,7 @@ elif [ $# -eq 3 ] && [ "$2" == "upgrade" ]; then
popd > /dev/null || exit 5
exit 5
fi
- echo -e " \e[0;32m*\e[0m Git commit..."
+ echo -ne " \e[0;32m*\e[0m Git commit..."
if git add .; then
echo -e "\e[1;32mOK\e[0m"
git commit -F /tmp/commit_msg &> /dev/null
@@ -443,7 +485,7 @@ elif [ $# -eq 3 ] && [ "$2" == "upgrade" ]; then
else
#######
- echo -e "\e[1;34mUsage:\e[0;35m\n\n$( echo "$0" | rev | cut -d/ -f1 | rev) / build\e[0m\nTry to build latest available version of the given package, and if dependencies are missing try to autogenerate it\n\n\e[0;35m$( echo "$0" | rev | cut -d/ -f1 | rev) / upgrade \e[0m\nAutotgenerate a new version / based on existing version"
+ echo -e "\e[1;34mUsage:\e[0;35m\n\n$( echo "$0" | rev | cut -d/ -f1 | rev) / build\e[0m\nTry to build latest available version of the given package, and if dependencies are missing try to autogenerate it\n\n\e[0;35m$( echo "$0" | rev | cut -d/ -f1 | rev) / create \e[0m\nAutogenerate a new version / based on pypi.org metadata and github sources\n\n\e[0;35m$( echo "$0" | rev | cut -d/ -f1 | rev) / upgrade \e[0m\nAutogenerate a new version / based on existing version and githubsources"
popd > /dev/null || exit
exit 1