devtools/src/pkgctl.in

142 lines
2.9 KiB
Bash

#!/bin/bash
#
# SPDX-License-Identifier: GPL-3.0-or-later
_DEVTOOLS_LIBRARY_DIR=${_DEVTOOLS_LIBRARY_DIR:-@pkgdatadir@}
# shellcheck source=src/lib/common.sh
source "${_DEVTOOLS_LIBRARY_DIR}"/lib/common.sh
# shellcheck source=src/lib/config.sh
source "${_DEVTOOLS_LIBRARY_DIR}"/lib/config.sh
set -e
usage() {
local -r COMMAND=${BASH_SOURCE[0]##*/}
cat <<- _EOF_
Usage: ${COMMAND} [COMMAND] [OPTIONS]
Unified command-line frontend for devtools.
COMMANDS
aur Interact with the Arch User Repository
auth Authenticate with services like GitLab
build Build packages inside a clean chroot
db Pacman database modification for package update, move etc
diff Compare package files using different modes
release Release step to commit, tag and upload build artifacts
repo Manage Git packaging repositories and their configuration
search Search for an expression across the GitLab packaging group
version Check and manage package versions against upstream
OPTIONS
-h, --help Show this help text
_EOF_
}
if (( $# < 1 )); then
usage
exit 1
fi
pkgctl_version_print() {
cat <<- _EOF_
pkgctl @buildtoolver@
_EOF_
}
export _DEVTOOLS_COMMAND='pkgctl'
setup_workdir
load_devtools_config
# command checking
while (( $# )); do
case $1 in
-h|--help)
usage
exit 0
;;
aur)
_DEVTOOLS_COMMAND+=" $1"
shift
# shellcheck source=src/lib/aur.sh
source "${_DEVTOOLS_LIBRARY_DIR}"/lib/aur.sh
pkgctl_aur "$@"
exit 0
;;
build)
_DEVTOOLS_COMMAND+=" $1"
shift
# shellcheck source=src/lib/build/build.sh
source "${_DEVTOOLS_LIBRARY_DIR}"/lib/build/build.sh
pkgctl_build "$@"
exit 0
;;
repo)
_DEVTOOLS_COMMAND+=" $1"
shift
# shellcheck source=src/lib/repo.sh
source "${_DEVTOOLS_LIBRARY_DIR}"/lib/repo.sh
pkgctl_repo "$@"
exit 0
;;
auth)
_DEVTOOLS_COMMAND+=" $1"
shift
# shellcheck source=src/lib/auth.sh
source "${_DEVTOOLS_LIBRARY_DIR}"/lib/auth.sh
pkgctl_auth "$@"
exit 0
;;
db)
_DEVTOOLS_COMMAND+=" $1"
shift
# shellcheck source=src/lib/auth.sh
source "${_DEVTOOLS_LIBRARY_DIR}"/lib/db.sh
pkgctl_db "$@"
exit 0
;;
diff)
_DEVTOOLS_COMMAND+=" $1"
shift
diffpkg "$@"
exit 0
;;
release)
_DEVTOOLS_COMMAND+=" $1"
shift
# shellcheck source=src/lib/release.sh
source "${_DEVTOOLS_LIBRARY_DIR}"/lib/release.sh
pkgctl_release "$@"
exit 0
;;
search)
_DEVTOOLS_COMMAND+=" $1"
shift
# shellcheck source=src/lib/release.sh
source "${_DEVTOOLS_LIBRARY_DIR}"/lib/search.sh
pkgctl_search "$@"
exit 0
;;
version)
_DEVTOOLS_COMMAND+=" $1"
shift
# shellcheck source=src/lib/version.sh
source "${_DEVTOOLS_LIBRARY_DIR}"/lib/version.sh
pkgctl_version "$@"
exit 0
;;
--version|-V)
_DEVTOOLS_COMMAND+=" $1"
shift
pkgctl_version_print
exit 0
;;
*)
die "invalid command: %s" "$1"
;;
esac
done