summaryrefslogtreecommitdiff
path: root/cmdline/apt-key
diff options
context:
space:
mode:
authorDavid Kalnischkies <kalnischkies@gmail.com>2013-07-11 19:20:09 +0200
committerDavid Kalnischkies <kalnischkies@gmail.com>2013-08-12 18:01:37 +0200
commit3dc55197095e0536aae4d5c0c91e28bfd4740ec6 (patch)
tree91f10be60b3e729ab96244e37d6249dac8733680 /cmdline/apt-key
parent87281603a1342a7dc4d12f979574704a45bf6b7b (diff)
add a not documented apt-key --fakeroot option
Usually, most apt-key commands require root, so the script is checking for being run as root, but in your tests we use a non-root location, so we don't need to be root and therefore need an option to skip the check. Git-Dch: Ignore
Diffstat (limited to 'cmdline/apt-key')
-rwxr-xr-xcmdline/apt-key73
1 files changed, 41 insertions, 32 deletions
diff --git a/cmdline/apt-key b/cmdline/apt-key
index 2c087acbc..89e224923 100755
--- a/cmdline/apt-key
+++ b/cmdline/apt-key
@@ -158,39 +158,48 @@ usage() {
echo "If no specific keyring file is given the command applies to all keyring files."
}
-# Determine on which keyring we want to work
-if [ "$1" = "--keyring" ]; then
- #echo "keyfile given"
- shift
- TRUSTEDFILE="$1"
- if [ -r "$TRUSTEDFILE" ] || [ "$2" = 'add' ] || [ "$2" = 'adv' ]; then
- GPG="$GPG --keyring $TRUSTEDFILE --primary-keyring $TRUSTEDFILE"
- else
- echo >&2 "Error: The specified keyring »$TRUSTEDFILE« is missing or not readable"
- exit 1
- fi
- shift
-# otherwise use the default
-else
- #echo "generate list"
- TRUSTEDFILE="/etc/apt/trusted.gpg"
- eval $(apt-config shell TRUSTEDFILE Apt::GPGV::TrustedKeyring)
- eval $(apt-config shell TRUSTEDFILE Dir::Etc::Trusted/f)
- if [ -r "$TRUSTEDFILE" ]; then
- GPG="$GPG --keyring $TRUSTEDFILE"
- fi
- GPG="$GPG --primary-keyring $TRUSTEDFILE"
- TRUSTEDPARTS="/etc/apt/trusted.gpg.d"
- eval $(apt-config shell TRUSTEDPARTS Dir::Etc::TrustedParts/d)
- if [ -d "$TRUSTEDPARTS" ]; then
- #echo "parts active"
- for trusted in $(run-parts --list $TRUSTEDPARTS --regex '^.*\.gpg$'); do
- #echo "part -> $trusted"
- GPG="$GPG --keyring $trusted"
- done
- fi
+while [ -n "$1" ]; do
+ case "$1" in
+ --keyring)
+ shift
+ TRUSTEDFILE="$1"
+ if [ -r "$TRUSTEDFILE" ] || [ "$2" = 'add' ] || [ "$2" = 'adv' ]; then
+ GPG="$GPG --keyring $TRUSTEDFILE --primary-keyring $TRUSTEDFILE"
+ else
+ echo >&2 "Error: The specified keyring »$TRUSTEDFILE« is missing or not readable"
+ exit 1
+ fi
+ shift
+ ;;
+ --fakeroot)
+ requires_root() { true; }
+ shift
+ ;;
+ --*)
+ echo >&2 "Unknown option: $1"
+ usage
+ exit 1;;
+ *)
+ break;;
+ esac
+done
+
+if [ -z "$TRUSTEDFILE" ]; then
+ TRUSTEDFILE="/etc/apt/trusted.gpg"
+ eval $(apt-config shell TRUSTEDFILE Apt::GPGV::TrustedKeyring)
+ eval $(apt-config shell TRUSTEDFILE Dir::Etc::Trusted/f)
+ if [ -r "$TRUSTEDFILE" ]; then
+ GPG="$GPG --keyring $TRUSTEDFILE"
+ fi
+ GPG="$GPG --primary-keyring $TRUSTEDFILE"
+ TRUSTEDPARTS="/etc/apt/trusted.gpg.d"
+ eval $(apt-config shell TRUSTEDPARTS Dir::Etc::TrustedParts/d)
+ if [ -d "$TRUSTEDPARTS" ]; then
+ for trusted in $(run-parts --list $TRUSTEDPARTS --regex '^.*\.gpg$'); do
+ GPG="$GPG --keyring $trusted"
+ done
+ fi
fi
-#echo "COMMAND: $GPG"
command="$1"
if [ -z "$command" ]; then