diff --git a/_posts/2014-03-23-creating-custom-repo.html b/_posts/2014-03-23-creating-custom-repo.html index 6697399..a0a464a 100644 --- a/_posts/2014-03-23-creating-custom-repo.html +++ b/_posts/2014-03-23-creating-custom-repo.html @@ -57,10 +57,11 @@ func_build() { fi /usr/bin/cp *.pkg.tar.xz "${PREPARE}" } +export -f func_build # building -/usr/bin/cd "${STAGINGDIR}" -/usr/bin/find -name PKGBUILD -type f -execdir func_build "${PREPAREDIR}" "${ROOTDIR}" \; +cd "${STAGINGDIR}" +/usr/bin/find -name 'PKGBUILD' -type f -execdir /usr/bin/bash -c "func_build "${PREPAREDIR}" "${ROOTDIR}"" \; {% endhighlight %}

It is recommended to add the following lines to /etc/sudoers:

{% highlight bash %} @@ -71,7 +72,7 @@ username ALL=NOPASSWD: /usr/bin/staging-x86_64-build

Packages signing

{% highlight bash %} # signing -/usr/bin/cd "${PREPAREDIR}" +cd "${PREPAREDIR}" for PACKAGE in $(/usr/bin/ls *.pkg.tar.xz); do /usr/bin/gpg -b ${PACKAGE} done @@ -97,14 +98,15 @@ func_remove() { /usr/bin/repo-remove ${DBNAME}.files.tar.gz ${PKGNAME} /usr/bin/rm -f ${PKGNAME}* } +export -f func_remove {% endhighlight %}

i686 repository update:

{% highlight bash %} # updating i686 repo -/usr/bin/cd "${REPODIR}/i686" +cd "${REPODIR}/i686" for PACKAGE in ${i686_PACKAGES}; do PKGNAME=$(echo ${PACKAGE} | /usr/bin/awk -F '-' '{for(i=1; i<=NF-3;i++) {printf("%s-", $i);}}' | /usr/bin/sed 's/.$//') - /usr/bin/find -name '${PKGNAME}*' -type f -exec func_remove "${DBNAME}" "${PKGNAME}" + /usr/bin/find -name '${PKGNAME}*' -type f -exec /usr/bin/bash -c "func_remove "${DBNAME}" "${PKGNAME}"" \; /usr/bin/cp "${PREPAREDIR}/${PACKAGE}"{,.sig} . done /usr/bin/repo-add --new ${DBNAME}.db.tar.gz *.pkg.tar.xz @@ -113,10 +115,10 @@ done

x86_64 repository update:

{% highlight bash %} # updating x86_64 repo -/usr/bin/cd "${REPODIR}/x86_64" +cd "${REPODIR}/x86_64" for PACKAGE in ${x86_64_PACKAGES}; do PKGNAME=$(echo ${PACKAGE} | /usr/bin/awk -F '-' '{for(i=1; i<=NF-3;i++) {printf("%s-", $i);}}' | /usr/bin/sed 's/.$//') - /usr/bin/find -name '${PKGNAME}*' -type f -exec func_remove "${DBNAME}" "${PKGNAME}" + /usr/bin/find -name '${PKGNAME}*' -type f -exec /usr/bin/bash -c "func_remove "${DBNAME}" "${PKGNAME}"" \; /usr/bin/cp "${PREPAREDIR}/${PACKAGE}"{,.sig} . done /usr/bin/repo-add --new ${DBNAME}.db.tar.gz *.pkg.tar.xz @@ -126,9 +128,9 @@ done

Cleaning

{% highlight bash %} # clear -/usr/bin/cd "${PREPAREDIR}" +cd "${PREPAREDIR}" /usr/bin/rm -rf * -/usr/bin/cd "${STAGINGDIR}" +cd "${STAGINGDIR}" /usr/bin/rm -rf * {% endhighlight %} diff --git a/ru/_posts/2014-03-23-creating-custom-repo.html b/ru/_posts/2014-03-23-creating-custom-repo.html index f545a03..10a39d2 100644 --- a/ru/_posts/2014-03-23-creating-custom-repo.html +++ b/ru/_posts/2014-03-23-creating-custom-repo.html @@ -58,10 +58,11 @@ func_build() { fi /usr/bin/cp *.pkg.tar.xz "${PREPARE}" } +export -f func_build # building -/usr/bin/cd "${STAGINGDIR}" -/usr/bin/find -name PKGBUILD -type f -execdir func_build "${PREPAREDIR}" "${ROOTDIR}" \; +cd "${STAGINGDIR}" +/usr/bin/find -name 'PKGBUILD' -type f -execdir /usr/bin/bash -c "func_build "${PREPAREDIR}" "${ROOTDIR}"" \; {% endhighlight %}

Для удобства рекомендую добавить в файл /etc/sudoers следующие строки:

{% highlight bash %} @@ -72,7 +73,7 @@ username ALL=NOPASSWD: /usr/bin/staging-x86_64-build

Подпись пакетов

{% highlight bash %} # signing -/usr/bin/cd "${PREPAREDIR}" +cd "${PREPAREDIR}" for PACKAGE in $(/usr/bin/ls *.pkg.tar.xz); do /usr/bin/gpg -b ${PACKAGE} done @@ -98,14 +99,15 @@ func_remove() { /usr/bin/repo-remove ${DBNAME}.files.tar.gz ${PKGNAME} /usr/bin/rm -f ${PKGNAME}* } +export -f func_remove {% endhighlight %}

Обновление репозитория i686:

{% highlight bash %} # updating i686 repo -/usr/bin/cd "${REPODIR}/i686" +cd "${REPODIR}/i686" for PACKAGE in ${i686_PACKAGES}; do PKGNAME=$(echo ${PACKAGE} | /usr/bin/awk -F '-' '{for(i=1; i<=NF-3;i++) {printf("%s-", $i);}}' | /usr/bin/sed 's/.$//') - /usr/bin/find -name '${PKGNAME}*' -type f -exec func_remove "${DBNAME}" "${PKGNAME}" + /usr/bin/find -name '${PKGNAME}*' -type f -exec /usr/bin/bash -c "func_remove "${DBNAME}" "${PKGNAME}"" \; /usr/bin/cp "${PREPAREDIR}/${PACKAGE}"{,.sig} . done /usr/bin/repo-add --new ${DBNAME}.db.tar.gz *.pkg.tar.xz @@ -114,10 +116,10 @@ done

Обновление репозитория x86_64:

{% highlight bash %} # updating x86_64 repo -/usr/bin/cd "${REPODIR}/x86_64" +cd "${REPODIR}/x86_64" for PACKAGE in ${x86_64_PACKAGES}; do PKGNAME=$(echo ${PACKAGE} | /usr/bin/awk -F '-' '{for(i=1; i<=NF-3;i++) {printf("%s-", $i);}}' | /usr/bin/sed 's/.$//') - /usr/bin/find -name '${PKGNAME}*' -type f -exec func_remove "${DBNAME}" "${PKGNAME}" + /usr/bin/find -name '${PKGNAME}*' -type f -exec /usr/bin/bash -c "func_remove "${DBNAME}" "${PKGNAME}"" \; /usr/bin/cp "${PREPAREDIR}/${PACKAGE}"{,.sig} . done /usr/bin/repo-add --new ${DBNAME}.db.tar.gz *.pkg.tar.xz @@ -127,9 +129,9 @@ done

Очистка

{% highlight bash %} # clear -/usr/bin/cd "${PREPAREDIR}" +cd "${PREPAREDIR}" /usr/bin/rm -rf * -/usr/bin/cd "${STAGINGDIR}" +cd "${STAGINGDIR}" /usr/bin/rm -rf * {% endhighlight %}