summaryrefslogtreecommitdiff
path: root/functions.sh.in
blob: 96b058656ab559a77653af0cf06c796cf0844273 (plain) (blame)
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
83
84
85
86
87
88
# /usr/share/abuild/functions.sh

sysconfdir=@sysconfdir@
prog=${0##*/}


abuild_conf=${ABUILD_CONF:-"$sysconfdir/abuild.conf"}
abuild_home=${ABUILD_USERDIR:-"$HOME/.abuild"}
abuild_userconf=${ABUILD_USERCONF:-"$abuild_home/abuild.conf"}

# read config
if [ -f "$abuild_conf" ]; then
	. "$abuild_conf" || abuild_conf=
fi

# read user config if exists
if [ -f "$abuild_userconf" ]; then
	. "$abuild_userconf" || abuild_userconf=
fi


# expects $1 to be a package directory in the aports tree ('foo' or 'main/foo')
# outputs APKBUILD's path if successful
aports_buildscript() {
	[ -n "$APORTSDIR" ] || return 1
	if [ "${1#*/}" != "$1" ]; then
		( cd "$APORTSDIR/$1" && [ -f APKBUILD ] && echo "$PWD/APKBUILD" )
	else
		( cd "$APORTSDIR"/*/"$1" && [ -f APKBUILD ] && echo "$PWD/APKBUILD" )
	fi
}


# output functions
case $prog in
abuild)
	if [ -n "$USE_COLORS" ]; then
		NORMAL="\033[1;0m"
		STRONG="\033[1;1m"
		RED="\033[1;31m"
		GREEN="\033[1;32m"
		YELLOW="\033[1;33m"
		BLUE="\033[1;34m"
	fi

	msg() {
		local prompt="$GREEN>>>${NORMAL}"
		local fake="${FAKEROOTKEY:+${BLUE}*${NORMAL}}"
		local name="${STRONG}${subpkgname:-$pkgname}${NORMAL}"
		[ -z "$quiet" ] && printf "${prompt} ${name}${fake}: $@\n" >&2
	}

	warning() {
		local prompt="${YELLOW}>>> WARNING:${NORMAL}"
		local fake="${FAKEROOTKEY:+${BLUE}*${NORMAL}}"
		local name="${STRONG}${subpkgname:-$pkgname}${NORMAL}"
		printf "${prompt} ${name}${fake}: $@\n" >&2
	}

	error() {
		local prompt="${RED}>>> ERROR:${NORMAL}"
		local fake="${FAKEROOTKEY:+${BLUE}*${NORMAL}}"
		local name="${STRONG}${subpkgname:-$pkgname}${NORMAL}"
		printf "${prompt} ${name}${fake}: $@\n" >&2
	}
	;;
*)
	msg() {
		# Here we write to stdout, but abuild's fancier messages write to stderr
		[ -z "$quiet" ] && echo "$@"
	}

	error() {
		echo "$@" >&2
	}
	;;
esac

# caller may override
cleanup() {
	return 0
}

die() {
	error "$@"
	cleanup
	exit 1
}