fix need for only single argument to gpg_sphere
[monkeysphere.git] / src / monkeysphere-authentication
index 265ca32957caa4f2ac6d5d12b52cdd7c458423d1..94642b6a4680f46e497448472999b728d1311fdf 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"
 
@@ -55,6 +52,7 @@ Monkeysphere authentication admin tool.
 subcommands:
  update-users (u) [USER]...        update user authorized_keys files
  refresh-keys (r)                  refresh keys in keyring
+ keys-for-user USER                output valid keys for user
 
  add-id-certifier (c+) KEYID|FILE  import and tsign a certification key
    [--domain (-n) DOMAIN]            limit ID certifications to DOMAIN
@@ -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
 }
 
 ########################################################################
@@ -149,9 +145,13 @@ export GNUPGHOME
 export CORE_KEYLENGTH
 export LOG_PREFIX
 
+if [ "$#" -eq 0 ] ; then 
+    usage
+    failure "Please supply a subcommand."
+fi
+
 # get subcommand
 COMMAND="$1"
-[ "$COMMAND" ] || (usage; exit 1)
 shift
 
 case $COMMAND in
@@ -160,17 +160,22 @@ case $COMMAND in
        setup
        ;;
 
-    'update-users'|'update-user'|'u')
+    'update-users'|'update-user'|'update'|'u')
        source "${MASHAREDIR}/setup"
        setup
        source "${MASHAREDIR}/update_users"
        update_users "$@"
        ;;
 
-    'refresh-keys'|'r')
+    'refresh-keys'|'refresh'|'r')
        source "${MASHAREDIR}/setup"
        setup
-       gpg_sphere "--keyserver $KEYSERVER --refresh-keys"
+       gpg_sphere --keyserver "$KEYSERVER" --refresh-keys
+       ;;
+
+    'keys-for-user')
+       source "${MASHAREDIR}/keys_for_user"
+       keys_for_user "$@"
        ;;
 
     'add-identity-certifier'|'add-id-certifier'|'add-certifier'|'c+')
@@ -207,7 +212,7 @@ case $COMMAND in
        gpg_sphere "$@"
        ;;
 
-    'version'|'v')
+    'version'|'--version'|'v')
        version
        ;;
 
@@ -217,6 +222,6 @@ case $COMMAND in
 
     *)
         failure "Unknown command: '$COMMAND'
-Type '$PGRM help' for usage."
+Try '$PGRM help' for usage."
         ;;
 esac