add check for argument in keys-for-user
[monkeysphere.git] / src / monkeysphere-authentication
index 8c58645bcb483fb30f04c88ca279806ff6c3e7a6..99b818dc0b549651399d28247ae14b4ab859cf6b 100755 (executable)
@@ -19,14 +19,11 @@ set -o pipefail
 
 PGRM=$(basename $0)
 
-SYSSHAREDIR=${MONKEYSPHERE_SYSSHAREDIR:-"/usr/share/monkeysphere"}
+SYSSHAREDIR=${MONKEYSPHERE_SYSSHAREDIR:-"__SYSSHAREDIR_PREFIX__/share/monkeysphere"}
 export SYSSHAREDIR
 . "${SYSSHAREDIR}/defaultenv"
 . "${SYSSHAREDIR}/common"
 
-SYSDATADIR=${MONKEYSPHERE_SYSDATADIR:-"/var/lib/monkeysphere"}
-export SYSDATADIR
-
 # sharedir for authentication functions
 MASHAREDIR="${SYSSHAREDIR}/ma"
 
@@ -54,6 +51,7 @@ Monkeysphere authentication admin tool.
 
 subcommands:
  update-users (u) [USER]...        update user authorized_keys files
+ keys-for-user (k) USER            output user authorized_keys lines to stdout
  refresh-keys (r)                  refresh keys in keyring
 
  add-id-certifier (c+) KEYID|FILE  import and tsign a certification key
@@ -79,8 +77,6 @@ gpg_core() {
 }
 
 # function to interact with the gpg sphere keyring
-# FIXME: this function requires only a single argument because of
-# problems with quote expansion.  this needs to be fixed/improved.
 gpg_sphere() {
     GNUPGHOME="$GNUPGHOME_SPHERE"
     export GNUPGHOME
@@ -101,7 +97,7 @@ core_fingerprint() {
 gpg_core_sphere_sig_transfer() {
     log debug "exporting core local sigs to sphere..."
     gpg_core --export-options export-local-sigs --export | \
-       gpg_sphere "--import-options import-local-sigs --import" 2>&1 | log debug
+       gpg_sphere --import-options import-local-sigs --import 2>&1 | log debug
 }
 
 ########################################################################
@@ -168,13 +164,21 @@ case $COMMAND in
        source "${MASHAREDIR}/setup"
        setup
        source "${MASHAREDIR}/update_users"
-       update_users "$@"
+       OUTPUT_STDOUT= update_users "$@"
+       ;;
+
+    'keys-for-user'|'k')
+       (( $# > 0 )) || failure "Must specify user."
+       source "${MASHAREDIR}/setup"
+       setup
+       source "${MASHAREDIR}/update_users"
+       OUTPUT_STDOUT=true update_users "$1"
        ;;
 
     'refresh-keys'|'refresh'|'r')
        source "${MASHAREDIR}/setup"
        setup
-       gpg_sphere "--keyserver $KEYSERVER --refresh-keys"
+       gpg_sphere --keyserver "$KEYSERVER" --refresh-keys
        ;;
 
     'add-identity-certifier'|'add-id-certifier'|'add-certifier'|'c+')