summaryrefslogtreecommitdiff
path: root/src/xbs-abs/helper-abs
diff options
context:
space:
mode:
Diffstat (limited to 'src/xbs-abs/helper-abs')
-rwxr-xr-xsrc/xbs-abs/helper-abs203
1 files changed, 0 insertions, 203 deletions
diff --git a/src/xbs-abs/helper-abs b/src/xbs-abs/helper-abs
deleted file mode 100755
index b410559..0000000
--- a/src/xbs-abs/helper-abs
+++ /dev/null
@@ -1,203 +0,0 @@
-#!/usr/bin/env bash
-
-# Copyright (C) 2013-2014, 2017-2018 Luke Shumaker <lukeshu@parabola.nu>
-#
-# For code from db-functions (arch_svn):
-# Copyright (C) 2012 Pierre Schmitz <pierre@archlinux.de>
-# For code from db-move+db-remove (move+unrelease):
-# Copyright (C) 2008-2009 Aaron Griffin <aaronmgriffin@gmail.com>
-# Copyright (C) 2009 Abhishek Dasgupta <abhidg@gmail.com>
-# Copyright (C) 2009, 2011 Dan McGee <dan@archlinux.org>
-# Copyright (C) 2009-2012 Pierre Schmitz <pierre@archlinux.de>
-# For code just from db-move (move):
-# Copyright (C) 2011 Rémy Oudompheng <remyoudompheng@gmail.com>
-# Copyright (C) 2012 Florian Pritz <bluewind@xinu.at>
-# For code just from db-remove (unrelease):
-# Copyright (C) 2009 Eric Bélanger <snowmaniscool@gmail.com>
-# Copyright (C) 2011 Florian Pritz <bluewind@xinu.at>
-#
-# License: GNU GPLv2+
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-. "$(librelib common)"
-
-load_config() {
- . "$(librelib conf)"
- # SVNUSER is optional
- load_conf xbs-abs.conf SVNDIR SVNREPOS ARCHES || exit
-}
-
-# This is taken from dbscripts:db-fuctions
-arch_svn() {
- if [[ -z "${SVNUSER}" ]]; then
- /usr/bin/svn "${@}"
- else
- sudo -u "${SVNUSER}" -- /usr/bin/svn --username "${USER}" "${@}"
- fi
-}
-
-pac2svn() {
- local pacrepo=$1
-
- # Figure out which svn repo we need
- local repo_spec repo_name repo_svnurl repo_pacrepos
- for repo_spec in "${SVNREPOS[@]}"; do
- read -r repo_name repo_svnurl repo_pacrepos <<<"$repo_spec"
- read -ra repo_pacrepos <<<"$repo_pacrepos"
-
- if in_array "$pacrepo" "${repo_pacrepos[@]}"; then
- echo "$repo_name"
- return 0 # $EXIT_SUCCESS
- fi
- done
- return 1 # $EXIT_FAILURE
-}
-
-status() {
- load_config
- [[ -z $(arch_svn status -q) ]]
-}
-
-download() {
- load_config
-
- local svnrepoStr
- for svnrepoStr in "${SVNREPOS[@]}"; do
- local svnrepoAry=($svnrepoStr)
- local svnrepo=${svnrepoAry[0]}
- local svnurl=${svnrepoAry[1]}
- local pacrepos=("${svnrepoAry[@]:2}")
-
- if [[ -d "$SVNDIR/$svnrepo/.svn" ]]; then
- arch_svn -q up "$SVNDIR/$svnrepo"/*
- else
- # checkout non-recursive, then lazy load
- # necessary because:
- # > DO NOT CHECK OUT THE ENTIRE SVN REPO. Your address
- # > may be blocked.
- arch_svn -q checkout -N "$svnurl" "$SVNDIR/$svnrepo"
- fi
- done
-}
-
-release-client() {
- local repo=$1
- local arch=$2
-
- # Hack to use arch_svn as 'svn' in external scripts
- local tmpdir; 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)" \
- "$(declare -f arch_svn)" \
- 'arch_svn "$@"' \
- > "$tmpdir/svn"
- chmod 755 "$tmpdir/svn"
- export PATH="$tmpdir:$PATH"
-
- "${0}.d/archrelease" -f "${repo}-${arch}"
- "${0}.d/commitpkg" "${repo}" "${arch}"
-}
-
-release-server() {
- # Do nothing
- :
-}
-
-unrelease() {
- local pkgbase=$1
- local repo=$2
- local arch=$3
-
- local tag="$repo-$arch"
-
- load_config
- local svndir
- svndir="${SVNDIR}/$(pac2svn "$repo")/${pkgbase}"
- arch_svn up -q "$svndir"
-
- # This is based off code from dbscripts:db-remove
- arch_svn rm --force -q "${svndir}/repos/${tag}"
- arch_svn commit -q "${svndir}" -m "${0##*/}: $pkgbase removed by $(id -un)"
-}
-
-move() {
- local repo_from=$1
- local repo_to=$2
- local pkgbase=$3
-
- load_config
- local svndir
- svndir="${SVNDIR}/$(pac2svn "$repo_from")/${pkgbase}"
- arch_svn up -q "$svndir"
-
- local tag_list=""
- local pkgarch
- local arches=()
- # this is based off code from dbscripts:db-move
- for pkgarch in "${ARCHES[@]}" 'any'; do
- local dir_from="${svndir}/repos/${repo_from}-${pkgarch}"
- local dir_to="${svndir}/repos/${repo_to}-${pkgarch}"
-
- if [ -f "${dir_from}/PKGBUILD" ]; then
- if [ -d "${dir_to}" ]; then
- for file in $(arch_svn ls "${dir_to}"); do
- arch_svn rm -q "${dir_to}/$file@"
- done
- else
- mkdir "${dir_to}"
- arch_svn add -q "${dir_to}"
- fi
-
- local file
- for file in $(arch_svn ls "${dir_from}"); do
- arch_svn mv -q -r HEAD "${dir_from}/$file@" "${dir_to}/"
- done
- arch_svn rm --force -q "${dir_from}"
- tag_list="$tag_list, $pkgarch"
- arches+=("$pkgarch")
- fi
- done
- tag_list="${tag_list#, }"
- arch_svn commit -q "${svndir}" -m "${0##*/}: moved ${pkgbase} from [${repo_from}] to [${repo_to}] (${tag_list})"
- echo "${arches[*]}"
-}
-
-releasepath() {
- local pkgbase=$1
- local repo=$2
- local arch=$3
-
- load_config
- local svndir releasepath
- svndir="${SVNDIR}/$(pac2svn "$repo")/${pkgbase}"
- arch_svn up -q "${svndir}"
- releasepath="${svndir}/repos/${repo}-${arch}"
- if [[ -f "${releasepath}/PKGBUILD" ]]; then
- printf '%s\n' "$releasepath"
- return 0 # $EXIT_SUCCESS
- fi
- return 1 # $EXIT_FAILURE
-}
-
-name() {
- echo SVN
-}
-
-case "$1" in
- status|download|release-client|release-server|unrelease|move|releasepath|name) "$@";;
- *) exit 127;;
-esac