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 %}