get rid of getopts.
[monkeysphere.git] / src / monkeysphere
index dd689b5bfd45ca4b5dc6abbe97fe59b6096b7ac5..c00370640356edcbfd859dfed2e7057b339b9ca5 100755 (executable)
@@ -63,15 +63,6 @@ gen_subkey(){
     keyExpire=
 
     # get options
-    TEMP=$(PATH="/usr/local/bin:$PATH" getopt -o l:e: -l length:,expire: -n "$PGRM" -- "$@") || failure "getopt failed!  Does your getopt support GNU-style long options?"
-
-    if [ $? != 0 ] ; then
-       exit 1
-    fi
-
-    # Note the quotes around `$TEMP': they are essential!
-    eval set -- "$TEMP"
-
     while true ; do
        case "$1" in
            -l|--length)
@@ -82,10 +73,11 @@ gen_subkey(){
                keyExpire="$2"
                shift 2
                ;;
-           --)
-               shift
-               ;;
-            *)
+           *)
+               if [ "$(echo "$1" | cut -c 1)" = '-' ] ; then
+                   failure "Unknown option '$1'.
+Type '$PGRM help' for usage."
+               fi
                break
                ;;
        esac
@@ -158,7 +150,7 @@ EOF
     log verbose "done."
 }
 
-function subkey_to_ssh_agent() {
+subkey_to_ssh_agent() {
     # try to add all authentication subkeys to the agent:
 
     local sshaddresponse
@@ -318,10 +310,12 @@ case $COMMAND in
     'update-known_hosts'|'update-known-hosts'|'k')
        MODE='known_hosts'
 
+       # touch the known_hosts file so that the file permission check
+       # below won't fail upon not finding the file
+       (umask 0022 && touch "$KNOWN_HOSTS")
+
        # check permissions on the known_hosts file path
-       if ! check_key_file_permissions "$USER" "$KNOWN_HOSTS" ; then
-           failure "Improper permissions on known_hosts file path."
-       fi
+       check_key_file_permissions "$USER" "$KNOWN_HOSTS" || failure
 
         # if hosts are specified on the command line, process just
         # those hosts
@@ -347,14 +341,10 @@ case $COMMAND in
        MODE='authorized_keys'
 
        # check permissions on the authorized_user_ids file path
-       if ! check_key_file_permissions "$USER" "$AUTHORIZED_USER_IDS" ; then
-           failure "Improper permissions on authorized_user_ids file path."
-       fi
+       check_key_file_permissions "$USER" "$AUTHORIZED_USER_IDS" || failure
 
        # check permissions on the authorized_keys file path
-       if ! check_key_file_permissions "$USER" "$AUTHORIZED_KEYS" ; then
-           failure "Improper permissions on authorized_keys file path."
-       fi
+       check_key_file_permissions "$USER" "$AUTHORIZED_KEYS" || failure
 
         # exit if the authorized_user_ids file is empty
        if [ ! -e "$AUTHORIZED_USER_IDS" ] ; then