various: fancier readconfig, permit env overrides
This commit is contained in:
parent
89afa41792
commit
cfa6c7d67a
|
@ -30,7 +30,7 @@ get_privkey_file() {
|
||||||
|
|
||||||
default_name="${emailaddr:-$USER}-$(printf "%x" $(date +%s))"
|
default_name="${emailaddr:-$USER}-$(printf "%x" $(date +%s))"
|
||||||
|
|
||||||
privkey="$abuild_home/$default_name.rsa"
|
privkey="$ABUILD_USERDIR/$default_name.rsa"
|
||||||
[ -n "$non_interactive" ] && return 0
|
[ -n "$non_interactive" ] && return 0
|
||||||
msg "Generating public/private rsa key pair for abuild"
|
msg "Generating public/private rsa key pair for abuild"
|
||||||
echo -n "Enter file in which to save the key [$privkey]: "
|
echo -n "Enter file in which to save the key [$privkey]: "
|
||||||
|
@ -42,7 +42,7 @@ get_privkey_file() {
|
||||||
}
|
}
|
||||||
|
|
||||||
do_keygen() {
|
do_keygen() {
|
||||||
mkdir -p "$abuild_home"
|
mkdir -p "$ABUILD_USERDIR"
|
||||||
|
|
||||||
get_privkey_file
|
get_privkey_file
|
||||||
pubkey="$privkey.pub"
|
pubkey="$privkey.pub"
|
||||||
|
@ -68,14 +68,14 @@ do_keygen() {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$append_config" ]; then
|
if [ -n "$append_config" ]; then
|
||||||
if [ -f "$abuild_userconf" ]; then
|
if [ -f "$ABUILD_USERCONF" ]; then
|
||||||
# comment out the existing values
|
# comment out the existing values
|
||||||
sed -i -e 's/^PACKAGER_PRIVKEY=/\#&/' "$abuild_userconf"
|
sed -i -e 's/^PACKAGER_PRIVKEY=/\#&/' "$ABUILD_USERCONF"
|
||||||
fi
|
fi
|
||||||
echo "PACKAGER_PRIVKEY=\"$privkey\"" >> "$abuild_userconf"
|
echo "PACKAGER_PRIVKEY=\"$privkey\"" >> "$ABUILD_USERCONF"
|
||||||
else
|
else
|
||||||
msg ""
|
msg ""
|
||||||
msg "You might want add following line to $abuild_userconf:"
|
msg "You might want add following line to $ABUILD_USERCONF:"
|
||||||
msg ""
|
msg ""
|
||||||
msg "PACKAGER_PRIVKEY=\"$privkey\""
|
msg "PACKAGER_PRIVKEY=\"$privkey\""
|
||||||
msg ""
|
msg ""
|
||||||
|
@ -92,7 +92,7 @@ usage() {
|
||||||
$prog $abuild_ver - generate signing keys
|
$prog $abuild_ver - generate signing keys
|
||||||
Usage: $prog [-a|--append] [-i|--install] [-n]
|
Usage: $prog [-a|--append] [-i|--install] [-n]
|
||||||
Options:
|
Options:
|
||||||
-a, --append Set PACKAGER_PRIVKEY=<generated key> in $abuild_userconf
|
-a, --append Set PACKAGER_PRIVKEY=<generated key> in $ABUILD_USERCONF
|
||||||
-i, --install Install public key into /etc/apk/keys using sudo
|
-i, --install Install public key into /etc/apk/keys using sudo
|
||||||
-n Non-interactive. Use defaults
|
-n Non-interactive. Use defaults
|
||||||
-q, --quiet
|
-q, --quiet
|
||||||
|
|
|
@ -85,9 +85,9 @@ if [ -z "$privkey" ]; then
|
||||||
cat >&2 << __EOF__
|
cat >&2 << __EOF__
|
||||||
No private key found. Use 'abuild-keygen' to generate the keys.
|
No private key found. Use 'abuild-keygen' to generate the keys.
|
||||||
Then you can either:
|
Then you can either:
|
||||||
* set the PACKAGER_PRIVKEY in $abuild_userconf
|
* set the PACKAGER_PRIVKEY in $ABUILD_USERCONF
|
||||||
('abuild-keygen -a' does this for you)
|
('abuild-keygen -a' does this for you)
|
||||||
* set the PACKAGER_PRIVKEY in $abuild_conf
|
* set the PACKAGER_PRIVKEY in $ABUILD_CONF
|
||||||
* specify the key with the -k option to $prog
|
* specify the key with the -k option to $prog
|
||||||
|
|
||||||
__EOF__
|
__EOF__
|
||||||
|
|
|
@ -31,7 +31,7 @@ if [ $# -gt 0 ]; then
|
||||||
exit 2
|
exit 2
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! [ -f "$abuild_conf" ] && ! [ -f "$abuild_userconf" ]; then
|
if ! [ -f "$ABUILD_CONF" ] && ! [ -f "$ABUILD_USERCONF" ]; then
|
||||||
die "no abuild.conf found"
|
die "no abuild.conf found"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -3,20 +3,67 @@
|
||||||
sysconfdir=@sysconfdir@
|
sysconfdir=@sysconfdir@
|
||||||
prog=${0##*/}
|
prog=${0##*/}
|
||||||
|
|
||||||
|
readconfig() {
|
||||||
abuild_conf=${ABUILD_CONF:-"$sysconfdir/abuild.conf"}
|
local _APORTSDIR _BUILDDIR _PKGDEST _SRCPKGDEST _REPODEST _SRCDEST
|
||||||
abuild_home=${ABUILD_USERDIR:-"$HOME/.abuild"}
|
local _CARCH _CHOST _CTARGET _CPPFLAGS _CFLAGS _CXXFLAGS _LDFLAGS
|
||||||
abuild_userconf=${ABUILD_USERCONF:-"$abuild_home/abuild.conf"}
|
local _JOBS _MAKEFLAGS _PACKAGER _USE_COLORS
|
||||||
|
local gitbase=
|
||||||
# read config
|
[ -n "${APORTSDIR+x}" ] && _APORTSDIR=$APORTSDIR
|
||||||
if [ -f "$abuild_conf" ]; then
|
[ -n "${BUILDDIR+x}" ] && _BUILDDIR=$BUILDDIR
|
||||||
. "$abuild_conf" || abuild_conf=
|
[ -n "${PKGDEST+x}" ] && _PKGDEST=$PKGDEST
|
||||||
fi
|
[ -n "${SRCPKGDEST+x}" ] && _SRCPKGDEST=$SRCPKGDEST
|
||||||
|
[ -n "${REPODEST+x}" ] && _REPODEST=$REPODEST
|
||||||
# read user config if exists
|
[ -n "${SRCDEST+x}" ] && _SRCDEST=$SRCDEST
|
||||||
if [ -f "$abuild_userconf" ]; then
|
[ -n "${CARCH+x}" ] && _CARCH=$CARCH
|
||||||
. "$abuild_userconf" || abuild_userconf=
|
[ -n "${CHOST+x}" ] && _CHOST=$CHOST
|
||||||
fi
|
[ -n "${CTARGET+x}" ] && _CTARGET=$CTARGET
|
||||||
|
[ -n "${CPPFLAGS+x}" ] && _CPPFLAGS=$CPPFLAGS
|
||||||
|
[ -n "${CFLAGS+x}" ] && _CFLAGS=$CFLAGS
|
||||||
|
[ -n "${CXXFLAGS+x}" ] && _CXXFLAGS=$CXXFLAGS
|
||||||
|
[ -n "${LDFLAGS+x}" ] && _LDFLAGS=$LDFLAGS
|
||||||
|
[ -n "${JOBS+x}" ] && _JOBS=$JOBS
|
||||||
|
[ -n "${MAKEFLAGS+x}" ] && _MAKEFLAGS=$MAKEFLAGS
|
||||||
|
[ -n "${PACKAGER+x}" ] && _PACKAGER=$PACKAGER
|
||||||
|
[ -n "${USE_COLORS+x}" ] && _USE_COLORS="$USE_COLORS"
|
||||||
|
: ${ABUILD_CONF:=$sysconfdir/abuild.conf}
|
||||||
|
: ${ABUILD_USERDIR:=$HOME/.abuild}
|
||||||
|
: ${ABUILD_USERCONF:=$ABUILD_USERDIR/abuild.conf}
|
||||||
|
[ -f "$ABUILD_CONF" ] && . "$ABUILD_CONF"
|
||||||
|
[ -f "$ABUILD_USERCONF" ] && . "$ABUILD_USERCONF"
|
||||||
|
APORTSDIR=${_APORTSDIR-$APORTSDIR}
|
||||||
|
gitbase=$(git rev-parse --show-toplevel 2>/dev/null) # already is -P
|
||||||
|
if [ -d "$APORTSDIR" ]; then
|
||||||
|
APORTSDIR=$(cd "$APORTSDIR"; pwd -P)
|
||||||
|
elif [ -z "$APORTSDIR" ] && [ -d "$HOME/aports" ]; then
|
||||||
|
APORTSDIR=$(cd "$HOME/aports"; pwd -P)
|
||||||
|
else
|
||||||
|
if [ -n "$gitbase" ]; then
|
||||||
|
case $(git config remote.origin.url) in
|
||||||
|
*/aports) APORTSDIR=$gitbase ;;
|
||||||
|
*) APORTSDIR= ;;
|
||||||
|
esac
|
||||||
|
else
|
||||||
|
APORTSDIR=
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
BUILDDIR=${_BUILDDIR-$BUILDDIR}
|
||||||
|
PKGDEST=${_PKGDEST-$PKGDEST}
|
||||||
|
SRCPKGDEST=${_SRCPKGDEST-$SRCPKGDEST}
|
||||||
|
REPODEST=${_REPODEST-$REPODEST}
|
||||||
|
SRCDEST=${_SRCDEST-$SRCDEST}
|
||||||
|
CARCH=${_CARCH-$CARCH}
|
||||||
|
CHOST=${_CHOST-$CHOST}
|
||||||
|
CTARGET=${_CTARGET-$CTARGET}
|
||||||
|
CPPFLAGS=${_CPPFLAGS-$CPPFLAGS}
|
||||||
|
CFLAGS=${_CFLAGS-$CFLAGS}
|
||||||
|
CXXFLAGS=${_CXXFLAGS-$CXXFLAGS}
|
||||||
|
LDFLAGS=${_LDFLAGS-$LDFLAGS}
|
||||||
|
JOBS=${_JOBS-$JOBS}
|
||||||
|
MAKEFLAGS=${_MAKEFLAGS-$MAKEFLAGS}
|
||||||
|
PACKAGER=${_PACKAGER-$PACKAGER}
|
||||||
|
USE_COLORS=${_USE_COLORS-$USE_COLORS}
|
||||||
|
}
|
||||||
|
readconfig
|
||||||
|
|
||||||
|
|
||||||
# expects $1 to be a package directory in the aports tree ('foo' or 'main/foo')
|
# expects $1 to be a package directory in the aports tree ('foo' or 'main/foo')
|
||||||
|
|
Loading…
Reference in New Issue