summaryrefslogtreecommitdiff
path: root/src/xbs/xbs
diff options
context:
space:
mode:
Diffstat (limited to 'src/xbs/xbs')
-rwxr-xr-xsrc/xbs/xbs182
1 files changed, 0 insertions, 182 deletions
diff --git a/src/xbs/xbs b/src/xbs/xbs
deleted file mode 100755
index cb02a99..0000000
--- a/src/xbs/xbs
+++ /dev/null
@@ -1,182 +0,0 @@
-#!/usr/bin/env bash
-
-# Copyright (C) 2013-2015, 2017-2018 Luke Shumaker <lukeshu@parabola.nu>
-#
-# 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/>.
-
-default_libdir=/usr/lib/xbs
-
-. "$(librelib messages)"
-. "$(librelib conf)"
-
-errusage() {
- if [[ $# -gt 0 ]]; then
- error "$@"
- fi
- usage >&2
- exit $EXIT_INVALIDARGUMENT
-}
-
-usage() {
- print 'Usage: %s [-b BUILDSYSTEM|-h] COMMAND [ARGUMENTS]' "${0##*/}"
- print 'Tool for working with arbitrary ABS-like build systems'
- echo
- prose 'This is a pluggable tool. The BUILDSYSTEM it uses is
- configured in:'
- bullet '%s' '/etc/xbs/xbs.conf'
- bullet '%s' '${XDG_CONFIG_HOME}/xbs/xbs.conf'
- bullet 'with the `-b` flag'
- prose 'Later items take precedence over earlier ones.'
- echo
- prose 'It looks for a helper programs named helper-${BUILDSYSTEM}, in
- the directory `%q` by default, but this directory can be changed
- with the environmental variable XBS_LIBDIR.' "$default_libdir"
- echo
- print 'Options:'
- flag "-b $(_ BUILDSYSTEM)" 'Use BUILDSYSTEM instead of the one
- configured in xbs.conf' \
- '-h' 'Show this message'
- echo
- prose "Whether a command is intended for use on a developer's box or on
- the server is indicated by (dev), (srv), or (any) before the
- command"
- echo
- print 'Commands:'
- flag "$(_ '(dev) status')" \
- 'Are there uncommitted changes in `.`?' \
- "$(_ '(dev) download')" \
- 'Download or update the tree' \
- "$(_ '(dev) release-client REPO ARCH')" \
- 'Release `.` (for developer boxes)' \
- "$(_ '(srv) release-server REPO ARCH')" \
- 'Release `.` (for server boxes)' \
- "$(_ '(srv) unrelease PKGBASE REPO ARCH')" \
- 'Unrelease a pkgbase' \
- "$(_ '(srv) move FROMREPO TOREPO PKGBASE')" \
- 'Move a pkgbase from one repo to another' \
- "$(_ '(srv) releasepath PKGBASE REPO ARCH')" \
- 'Print the path to the staged version of pkgbase, or exit with
- non-zero if not released' \
- "$(_ '(any) name')" \
- 'Print a human-friendly version of the BUILDSYSTEM name' \
- "$(_ '(any) help')" \
- 'Show this message'
-}
-
-status() {
- if [[ ! -f PKGBUILD ]]; then
- error 'PKGBUILD not found'
- # Though in this file in general it doesn't matter, in
- # this case it does: Using "exit" instead of "return"
- # is imporant because it prevents flow returning to
- # release-client.
- exit $EXIT_FAILURE
- fi
- "$HELPER" status "$@"
-}
-
-download() {
- "$HELPER" download "$@"
-}
-
-release-client() {
- if ! status; then
- error 'You have not committed your changes yet!'
- exit $EXIT_FAILURE
- fi
- "$HELPER" release-client "$@"
-}
-
-release-server() {
- if [[ ! -f PKGBUILD ]]; then
- error 'PKGBUILD not found'
- exit $EXIT_FAILURE
- fi
- "$HELPER" release-server "$@"
-}
-
-unrelease() {
- "$HELPER" unrelease "$@"
-}
-
-move() {
- "$HELPER" move "$@"
-}
-
-releasepath() {
- "$HELPER" releasepath "$@"
-}
-
-help() {
- usage
-}
-
-name() {
- "$HELPER" name "$@"
-}
-
-main() {
- BUILDSYSTEM=''
- while getopts 'b:h' arg; do
- case $arg in
- b) BUILDSYSTEM=$OPTARG;;
- h) usage; return $EXIT_SUCCESS;;
- *) errusage;;
- esac
- done
- shift $((OPTIND - 1))
-
- if [[ -z $BUILDSYSTEM ]]; then
- load_conf xbs.conf BUILDSYSTEM || exit
- fi
-
- if [[ -z $XBS_LIBDIR ]]; then
- export XBS_LIBDIR=$default_libdir
- fi
-
- HELPER="${XBS_LIBDIR}/helper-${BUILDSYSTEM}"
- if [[ ! -x "$HELPER" ]]; then
- error 'No helper for build system found: %s' "$BUILDSYSTEM"
- return $EXIT_NOTCONFIGURED;
- fi
-
- if [[ $# -lt 1 ]]; then
- errusage "Must specify a command"
- fi
-
- if [[ -w / ]]; then
- error 'Run as a normal user'
- fi
-
- local cmd=$1; shift
- case "$cmd" in
- status|download|name|help)
- [[ $# -eq 0 ]] || errusage 'bad number of argments'
- "$cmd" "$@"
- ;;
- release-client|release-server)
- [[ $# -eq 2 ]] || errusage 'bad number of argments'
- "$cmd" "$@"
- ;;
- move|unrelease|releasepath)
- [[ $# -eq 3 ]] || errusage 'bad number of argments'
- "$cmd" "$@"
- ;;
- *) errusage 'unknown command: %s' "$cmd";;
- esac
-}
-
-main "$@"