made gpg_sphere use --quiet again, and now doing more explicit extraction of key...
[monkeysphere.git] / src / monkeysphere-authentication
index c349e6fc93c3c062e07b0d5c4f60b3ca2f7daf07..e7a0580dc4c49598eb4d23f261a2e518fabf0e98 100755 (executable)
@@ -14,6 +14,9 @@
 ########################################################################
 set -e
 
+# set the pipefail option so pipelines fail on first command failure
+set -o pipefail
+
 PGRM=$(basename $0)
 
 SYSSHAREDIR=${MONKEYSPHERE_SYSSHAREDIR:-"/usr/share/monkeysphere"}
@@ -52,7 +55,6 @@ usage: $PGRM <subcommand> [options] [args]
 Monkeysphere authentication admin tool.
 
 subcommands:
- setup (s)                           setup monkeysphere user authentication
  update-users (u) [USER]...          update user authorized_keys files
  add-id-certifier (c+) KEYID         import and tsign a certification key
    --domain (-n) DOMAIN                limit ID certifications to DOMAIN
@@ -73,7 +75,7 @@ gpg_core() {
     GNUPGHOME="$GNUPGHOME_CORE"
     export GNUPGHOME
 
-    gpg "$@"
+    gpg --no-greeting --quiet --no-tty "$@"
 }
 
 # function to interact with the gpg sphere keyring
@@ -82,27 +84,19 @@ gpg_core() {
 gpg_sphere() {
     GNUPGHOME="$GNUPGHOME_SPHERE"
     export GNUPGHOME
-
-    su_monkeysphere_user "gpg $@"
+    su_monkeysphere_user "gpg --no-greeting --quiet --no-tty $@"
 }
 
 # output to stdout the core fingerprint from the gpg core secret
 # keyring
 core_fingerprint() {
     log debug "determining core key fingerprint..."
-    gpg_core --quiet --list-secret-key \
-       --with-colons --fixed-list-mode --with-fingerprint \
+    gpg_core --list-secret-key --with-colons \
+       --fixed-list-mode --with-fingerprint \
        | grep ^fpr: | cut -d: -f10
 }
 
-# fail if authentication has not been setup
-check_no_setup() {
-    # FIXME: what is the right test to do here?
-    [ -d "$MADATADIR" ] \
-       || failure "This host appears to have not yet been set up for Monkeysphere authentication.
-Please run 'monkeysphere-authentication setup' first."
-}
-
 # export signatures from core to sphere
 gpg_core_sphere_sig_transfer() {
     log debug "exporting core local sigs to sphere..."
@@ -164,40 +158,47 @@ shift
 case $COMMAND in
     'setup'|'setup'|'s')
        source "${MASHAREDIR}/setup"
-       setup "$@"
+       setup
        ;;
 
     'update-users'|'update-user'|'u')
-       check_no_setup
+       source "${MASHAREDIR}/setup"
+       setup
        source "${MASHAREDIR}/update_users"
        update_users "$@"
        ;;
 
     'add-identity-certifier'|'add-id-certifier'|'add-certifier'|'c+')
-       check_no_setup
+       source "${MASHAREDIR}/setup"
+       setup
        source "${MASHAREDIR}/add_certifier"
        add_certifier "$@"
        ;;
 
     'remove-identity-certifier'|'remove-id-certifier'|'remove-certifier'|'c-')
-       check_no_setup
+       source "${MASHAREDIR}/setup"
+       setup
        source "${MASHAREDIR}/remove_certifier"
        remove_certifier "$@"
        ;;
 
     'list-identity-certifiers'|'list-id-certifiers'|'list-certifiers'|'list-certifier'|'c')
-       check_no_setup
+       source "${MASHAREDIR}/setup"
+       setup
        source "${MASHAREDIR}/list_certifiers"
-       list_certifiers "$@"
+       list_certifiers
        ;;
 
     'diagnostics'|'d')
+       source "${MASHAREDIR}/setup"
+       setup
        source "${MASHAREDIR}/diagnostics"
        diagnostics
        ;;
 
     'gpg-cmd')
-       check_no_setup
+       source "${MASHAREDIR}/setup"
+       setup
        gpg_sphere "$@"
        ;;