fix ma so that the setup command is folded into the other commands, so
[monkeysphere.git] / src / monkeysphere-authentication
index 465777d74713aa1202f087df997a57a78d8c443e..8a4146f36c9df4a2fa1f417d29dd9532a6117c1e 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
@@ -99,18 +101,22 @@ 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"
+       gpg_sphere "--import-options import-local-sigs --import" \
+       2>&1 | log debug
 }
 
 ########################################################################
 # MAIN
 ########################################################################
 
-# unset variables that should be defined only in config file
+# unset variables that should be defined only in config file of in
+# MONKEYSPHERE_ variables
+unset LOG_LEVEL
 unset KEYSERVER
 unset AUTHORIZED_USER_IDS
 unset RAW_AUTHORIZED_KEYS
 unset MONKEYSPHERE_USER
+unset PROMPT
 
 # load configuration file
 [ -e ${MONKEYSPHERE_AUTHENTICATION_CONFIG:="${SYSCONFIGDIR}/monkeysphere-authentication.conf"} ] && . "$MONKEYSPHERE_AUTHENTICATION_CONFIG"
@@ -122,6 +128,7 @@ KEYSERVER=${MONKEYSPHERE_KEYSERVER:=${KEYSERVER:="pool.sks-keyservers.net"}}
 AUTHORIZED_USER_IDS=${MONKEYSPHERE_AUTHORIZED_USER_IDS:=${AUTHORIZED_USER_IDS:="%h/.monkeysphere/authorized_user_ids"}}
 RAW_AUTHORIZED_KEYS=${MONKEYSPHERE_RAW_AUTHORIZED_KEYS:=${RAW_AUTHORIZED_KEYS:="%h/.ssh/authorized_keys"}}
 MONKEYSPHERE_USER=${MONKEYSPHERE_MONKEYSPHERE_USER:=${MONKEYSPHERE_USER:="monkeysphere"}}
+PROMPT=${MONKEYSPHERE_PROMPT:=${PROMPT:="true"}}
 
 # other variables
 CHECK_KEYSERVER=${MONKEYSPHERE_CHECK_KEYSERVER:="true"}
@@ -134,8 +141,9 @@ CORE_KEYLENGTH=${MONKEYSPHERE_CORE_KEYLENGTH:="2048"}
 export DATE
 export MODE
 export LOG_LEVEL
-export MONKEYSPHERE_USER
 export KEYSERVER
+export MONKEYSPHERE_USER
+export PROMPT
 export CHECK_KEYSERVER
 export REQUIRED_USER_KEY_CAPABILITY
 export GNUPGHOME_CORE
@@ -151,35 +159,47 @@ shift
 case $COMMAND in
     'setup'|'setup'|'s')
        source "${MASHAREDIR}/setup"
-       setup "$@"
+       setup
        ;;
 
     'update-users'|'update-user'|'u')
+       source "${MASHAREDIR}/setup"
+       setup
        source "${MASHAREDIR}/update_users"
        update_users "$@"
        ;;
 
     'add-identity-certifier'|'add-id-certifier'|'add-certifier'|'c+')
+       source "${MASHAREDIR}/setup"
+       setup
        source "${MASHAREDIR}/add_certifier"
        add_certifier "$@"
        ;;
 
     'remove-identity-certifier'|'remove-id-certifier'|'remove-certifier'|'c-')
+       source "${MASHAREDIR}/setup"
+       setup
        source "${MASHAREDIR}/remove_certifier"
        remove_certifier "$@"
        ;;
 
     'list-identity-certifiers'|'list-id-certifiers'|'list-certifiers'|'list-certifier'|'c')
+       source "${MASHAREDIR}/setup"
+       setup
        source "${MASHAREDIR}/list_certifiers"
-       list_certifiers "$@"
+       list_certifiers
        ;;
 
     'diagnostics'|'d')
+       source "${MASHAREDIR}/setup"
+       setup
        source "${MASHAREDIR}/diagnostics"
        diagnostics
        ;;
 
     'gpg-cmd')
+       source "${MASHAREDIR}/setup"
+       setup
        gpg_sphere "$@"
        ;;