abuild-keygen: make cp non-interactive with -n
only use interactive copy when -n is omitted, so abuild-keygen --install becomes non-interactive. Add tests for both ineractive and non-interactive --install. Fixes https://gitlab.alpinelinux.org/alpine/abuild/-/issues/10049
This commit is contained in:
parent
62066fa2b9
commit
e510181626
|
@ -33,7 +33,7 @@ get_privkey_file() {
|
||||||
default_name="${emailaddr:-$USER}-$(printf "%x" $(date +%s))"
|
default_name="${emailaddr:-$USER}-$(printf "%x" $(date +%s))"
|
||||||
|
|
||||||
privkey="$ABUILD_USERDIR/$default_name.rsa"
|
privkey="$ABUILD_USERDIR/$default_name.rsa"
|
||||||
if [ -n "$non_interactive" ]; then
|
if [ -z "$interactive" ]; then
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
msg "Generating public/private rsa key pair for abuild"
|
msg "Generating public/private rsa key pair for abuild"
|
||||||
|
@ -60,8 +60,8 @@ do_keygen() {
|
||||||
|
|
||||||
if [ -n "$install_pubkey" ]; then
|
if [ -n "$install_pubkey" ]; then
|
||||||
msg "Installing $pubkey to /etc/apk/keys..."
|
msg "Installing $pubkey to /etc/apk/keys..."
|
||||||
$SUDO mkdir -p /etc/apk/keys
|
$SUDO mkdir -p "${abuild_keygen_install_root}"/etc/apk/keys
|
||||||
$SUDO cp -i "$pubkey" /etc/apk/keys/
|
$SUDO cp ${interactive:+-i} "$pubkey" "${abuild_keygen_install_root}"/etc/apk/keys/
|
||||||
else
|
else
|
||||||
|
|
||||||
msg ""
|
msg ""
|
||||||
|
@ -112,7 +112,7 @@ usage() {
|
||||||
|
|
||||||
append_config=
|
append_config=
|
||||||
install_pubkey=
|
install_pubkey=
|
||||||
non_interactive=
|
interactive=1
|
||||||
numbits=2048
|
numbits=2048
|
||||||
quiet=
|
quiet=
|
||||||
|
|
||||||
|
@ -126,7 +126,7 @@ while true; do
|
||||||
case $1 in
|
case $1 in
|
||||||
-a|--append) append_config=1;;
|
-a|--append) append_config=1;;
|
||||||
-i|--install) install_pubkey=1;;
|
-i|--install) install_pubkey=1;;
|
||||||
-n) non_interactive=1;;
|
-n) unset interactive ;;
|
||||||
-b|--numbits) numbits="$2"; shift 1;;
|
-b|--numbits) numbits="$2"; shift 1;;
|
||||||
-q|--quiet) quiet=1;; # suppresses msg
|
-q|--quiet) quiet=1;; # suppresses msg
|
||||||
-h|--help) usage; exit;;
|
-h|--help) usage; exit;;
|
||||||
|
|
|
@ -4,6 +4,7 @@ setup() {
|
||||||
tmpdir="$BATS_TMPDIR"/abuild-keygen
|
tmpdir="$BATS_TMPDIR"/abuild-keygen
|
||||||
export ABUILD_USERDIR="$tmpdir"/user
|
export ABUILD_USERDIR="$tmpdir"/user
|
||||||
mkdir -p "$ABUILD_USERDIR"
|
mkdir -p "$ABUILD_USERDIR"
|
||||||
|
export abuild_keygen_install_root=${ABUILD_USERDIR}
|
||||||
|
|
||||||
# provide a fake git
|
# provide a fake git
|
||||||
mkdir -p "$tmpdir"/bin
|
mkdir -p "$tmpdir"/bin
|
||||||
|
@ -37,3 +38,11 @@ teardown() {
|
||||||
[ $status -ne 0 ]
|
[ $status -ne 0 ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@test "abuild-keygen: --install option (interactive)" {
|
||||||
|
yes | SUDO= $ABUILD_KEYGEN --install
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "abuild-keygen: --install -n (non-interacive)" {
|
||||||
|
SUDO= $ABUILD_KEYGEN --install -n
|
||||||
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue