summaryrefslogtreecommitdiff
path: root/src/xbs-abs
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@sbcglobal.net>2014-07-05 02:10:21 -0400
committerLuke Shumaker <lukeshu@sbcglobal.net>2014-07-05 18:08:41 -0400
commitac6c975cde77b1fa8f3a8df2f9c966b3dc5fc90c (patch)
tree56f8a52bd5ac62f2240c46305f8baa425db30073 /src/xbs-abs
parent8435815a7690830dece329ac9a71b1da04f4ba38 (diff)
xbs: create separate release-client and release-server sub-commands
Diffstat (limited to 'src/xbs-abs')
-rw-r--r--src/xbs-abs/.gitignore1
-rw-r--r--src/xbs-abs/Makefile21
-rwxr-xr-xsrc/xbs-abs/helper-abs15
3 files changed, 29 insertions, 8 deletions
diff --git a/src/xbs-abs/.gitignore b/src/xbs-abs/.gitignore
index 8421720..d472431 100644
--- a/src/xbs-abs/.gitignore
+++ b/src/xbs-abs/.gitignore
@@ -1,2 +1,3 @@
+commitpkg*
archrelease*
!*.patch
diff --git a/src/xbs-abs/Makefile b/src/xbs-abs/Makefile
index cac9aea..8688ed7 100644
--- a/src/xbs-abs/Makefile
+++ b/src/xbs-abs/Makefile
@@ -1,10 +1,23 @@
pkgconfdir = $(sysconfdir)/xbs
pkglibexecdir = $(libexecdir)/xbs
libexecs = helper-abs
-no-progs = $(libexecs) archrelease
-copy_files = archrelease.in
-install_files = $(DESTDIR)$(pkglibexecdir)/helper-abs.d/archrelease
+
+_helpers = archrelease commitpkg
+no-progs = $(libexecs) $(_helpers)
+copy_files = $(addsuffix .in,$(_helpers))
+install_files = $(addprefix $(DESTDIR)$(pkglibexecdir)/helper-abs.d/,$(_helpers))
+pots = $(_helpers)
+
include ../../common.mk
-$(DESTDIR)$(pkglibexecdir)/helper-abs.d/archrelease: archrelease
+commitpkg: commitpkg.in
+ { \
+ echo '#!/usr/bin/env bash'; \
+ echo '. "$$(librelib common)"'; \
+ echo '. ./PKGBUILD'; \
+ echo 'repo=$$1; arch=$$2;'; \
+ sed -n "/== 'any'/,\$$p" $<; \
+ } > $@
+
+$(DESTDIR)$(pkglibexecdir)/helper-abs.d/%: %
install -Dm755 '$<' '$@'
diff --git a/src/xbs-abs/helper-abs b/src/xbs-abs/helper-abs
index 88f572a..6c57803 100755
--- a/src/xbs-abs/helper-abs
+++ b/src/xbs-abs/helper-abs
@@ -93,13 +93,13 @@ download() {
done
}
-release() {
+release-client() {
local repo=$1
local arch=$2
+ # Hack to use arch_svn as 'svn' in external scripts
local tmpdir="$(mktemp -dt "xbs-abs-release.XXXXXXXXXX")"
trap "$(printf 'rm -rf -- %q' "$tmpdir")" EXIT
-
printf '%s\n' \
'#!/bin/bash' \
"$(declare -p SVNUSER 2>/dev/null)" \
@@ -107,8 +107,15 @@ release() {
'arch_svn "$@"' \
> "$tmpdir/svn"
chmod 755 "$tmpdir/svn"
+ export PATH="$tmpdir:$PATH"
+
+ "${0}.d/archrelease" -f "${repo}-${arch}"
+ "${0}.d/commitpkg" "${repo}" "${arch}"
+}
- PATH="$tmpdir:$PATH" "${0}.d/archrelease" -f "${repo}-${arch}"
+release-server() {
+ # Do nothing
+ :
}
unrelease() {
@@ -185,6 +192,6 @@ releasepath() {
}
case "$1" in
- status|download|release|unrelease|move|releasepath) "$@";;
+ status|download|release-client|release-server|unrelease|move|releasepath) "$@";;
*) exit 127;;
esac