summarylogtreecommitdiffstats
path: root/zinc-aur.launch.sh
diff options
context:
space:
mode:
Diffstat (limited to 'zinc-aur.launch.sh')
-rwxr-xr-xzinc-aur.launch.sh111
1 files changed, 111 insertions, 0 deletions
diff --git a/zinc-aur.launch.sh b/zinc-aur.launch.sh
new file mode 100755
index 000000000000..78c49bad940d
--- /dev/null
+++ b/zinc-aur.launch.sh
@@ -0,0 +1,111 @@
+#! /bin/bash
+
+# build package automation
+
+readonly location=$(cd "$(dirname "${BASH_SOURCE[0]}" )" && pwd)
+source $location/PKGBUILD
+
+is_root() {
+ [[ $(id -u) == 0 ]]
+}
+
+has_makepkg() {
+ which makepkg >/dev/null 2>&1
+}
+
+
+do_provision() {
+ if has_makepkg ; then
+ do_provision_proper
+ else
+ do_provision_simple
+ fi
+}
+
+do_provision_proper() {
+ echo "// do_provision_proper"
+ local suno=""
+ if is_root ; then
+ chown -R nobody $location
+ suno="sudo -u nobody"
+ fi
+ $suno makepkg --force
+}
+
+do_provision_simple() {
+ echo "// do_provision_simple"
+ local source="$url.git"
+ if [[ -e $pkgname ]] ; then
+ git -C $pkgname pull
+ else
+ git clone $source
+ fi
+}
+
+do_version() {
+ #echo "version $pkgver -> $(pkgver)"
+ if has_makepkg; then
+ do_version_proper
+ else
+ do_version_simple
+ fi
+}
+
+do_version_simple() {
+ echo "// do_version_simple"
+
+ local pkgver=$(pkgver)
+ local file_list="PKGBUILD .SRCINFO"
+
+ local file
+ for file in $file_list ; do
+ sed -r -i "s%^([ ]*pkgver[ ]*=[ ]*).*%\1$pkgver%" "$file"
+ sed -r -i "s%#tag=v[0-9]+%#tag=v$pkgver%" "$file"
+ done
+}
+
+do_version_proper() {
+ echo "// do_version_proper"
+
+ local suno=""
+ local user="nobody"
+ if is_root ; then
+ chown -R $user $location
+ suno="sudo -u $user"
+ fi
+
+ $suno makepkg --printsrcinfo > .SRCINFO
+
+}
+
+do_commit() {
+ echo "// do_commit"
+
+ git add --all :/
+ git status
+
+ local message=$(git status --short)
+ git commit --message "$message"
+
+ git push
+
+}
+
+do_clean() {
+ echo "// clean"
+ rm -rf "$location/$pkgname"
+ rm -rf "$location/src"
+ rm -rf "$location/pkg"
+}
+
+###
+
+#set -e
+
+do_provision
+
+do_version
+
+do_commit
+
+do_clean