diff --git a/rust-package-dir.sh b/rust-package-dir.sh index 0438aadc0500ffa716bf5e4a6cffae75e12f930d..413a77e8e414ee73b39c1c12404bce43d00ab5eb 100755 --- a/rust-package-dir.sh +++ b/rust-package-dir.sh @@ -3,6 +3,16 @@ set -e set -x +post_package() { + if [ -x post-package-$1-$2 ] ; then + $(realpath post-package-$1-$2) $3 + elif [ -x post-package-$1 ] ; then + $(realpath post-package-$1) $3 + elif [ -x post-package ] ; then + $(realpath post-package) $3 + fi +} + CACHE=${HOME}/.cache/rust2rpm cargo package mkdir -p ${CACHE} @@ -16,6 +26,11 @@ for f in $(pwd)/target/package/*.crate ; do if [[ "$(basename "$f")" =~ (.*)-(.*).crate ]] ; then NAME=${BASH_REMATCH[1]} VERSION=${BASH_REMATCH[2]} - rust2rpm --stdout ${NAME} ${VERSION} > rust-${NAME}-${VERSION}.spec + SPEC=rust-${NAME}-${VERSION}.spec + rust2rpm -t plain --stdout ${NAME} ${VERSION} > ${SPEC} + sed -i -re 's/(BuildRequires:\s*)\((crate[\(][^\)]+\)).*/&\n\1\2/' \ + ${SPEC} + post_package ${NAME} ${VERSION} ${SPEC} + rpmbuild -bs ${SPEC} -D'_sourcedir target/package/.' -D'_srcrpmdir .' fi done