summaryrefslogtreecommitdiff
path: root/src/pkgctl.in
blob: d9e1b4c8bd6ec97e8f4a748416ee44f1eae93b96 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#!/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
		    auth    Authenticate with services like GitLab
		    db      Pacman database modification for packge update, move etc
		    diff    Compare package files using different modes
		    repo    Manage Git packaging repositories and their configuration

		OPTIONS
		    -h, --help     Show this help text
_EOF_
}

if (( $# < 1 )); then
	usage
	exit 1
fi

export _DEVTOOLS_COMMAND='pkgctl'

load_devtools_config

# command checking
while (( $# )); do
	case $1 in
		-h|--help)
			usage
			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
			;;
		*)
			die "invalid command: %s" "$1"
			;;
	esac
done