Better handle if single argument item doesnt exist - dossier - console collection manager
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) Tags
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit af4d6f9504d0bc8395b6bbd5cafadadbbd526fa2
 (DIR) parent c56a8be32bc63cb4abe9d17312e308fa31e81bfd
 (HTM) Author: Solene Rapenne <solene@perso.pw>
       Date:   Tue, 24 Jul 2018 10:46:08 +0200
       
       Better handle if single argument item doesnt exist
       
       Diffstat:
         M dossier                             |      39 ++++++++++++++++++-------------
       
       1 file changed, 23 insertions(+), 16 deletions(-)
       ---
 (DIR) diff --git a/dossier b/dossier
       @@ -13,27 +13,34 @@ else
                printf 'No current collection in use\n'
        fi
        
       +# return if an item exists
       +# $1 identifier
       +exists() {
       +    cd "$REPO"
       +    ls */$1 >/dev/null 2>&1
       +    return $?
       +}
        
        # displays the values of an identifier
        # $1 identifier
        show() {
            cd "${REPO}"
       -    SEEN=0
       -    for attribute in *
       -    do
       -        if [ -f "${attribute}/${1}" ]
       -        then
       -            if [ "$SEEN" -eq 0 ]
       -            then
       -                printf "%s:\n" "$1"
       -                SEEN=1
       -            fi
       -                printf "%15s: %s\n" ${attribute} "$(cat "${attribute}/${1}")"
       -        fi
       -    done
       -    if [ "$SEEN" -eq 1 ]
       +    if exists "$1"
            then
       -        exit 0
       +            SEEN=0
       +            for attribute in *
       +            do
       +                if [ -f "${attribute}/${1}" ]
       +                then
       +                    if [ "$SEEN" -eq 0 ]
       +                    then
       +                        printf "%s:\n" "$1"
       +                        SEEN=1
       +                    fi
       +                        printf "%15s: %s\n" ${attribute} "$(cat "${attribute}/${1}")"
       +                fi
       +            done
       +            exit 0
            else
                printf '%s is not in the library.\n' "$1"
                exit 1
       @@ -272,6 +279,6 @@ fi
        if [ "$#" -ge 3 ]; then add_value "$@" ; fi
        
        # no command, maybe it's an item, try it
       -if [ "$#" -eq 1 ]; then show "$1" ; fi
       +if [ "$#" -eq 1 ] && exists "$1" ; then show "$1" ; fi
        
        usage