diff --git a/back_pwquality.sh b/back_pwquality.sh index 29e27a7..a054657 100644 --- a/back_pwquality.sh +++ b/back_pwquality.sh @@ -27,9 +27,15 @@ _mk_pwquality_conf() { while [ -n "$1" ]; do case "$1" in --difok) shift; - _check_argument "$1" "--difok" - ;; - --minlen) + _check_argument_is_number "$1" "--difok" + ;; + --minlen) shift; + _check_argument_value "$1" "6" "--minlen" + ;; + --dcredit) shift; + _check_argument_is_number "$1" "--dcredit" "-" + ;; esac done - } +} +_mk_pwquality_conf --dcredit -1 diff --git a/common.sh b/common.sh index 092b1c9..75a0535 100644 --- a/common.sh +++ b/common.sh @@ -17,6 +17,9 @@ _check_argument_is_number() { if [[ "$1" == [0-9]* ]]; then return 0 else + if [ -n "$3" ]; then + grep -Exq -- "(\-|\+)[0-9]*" <<< "$1" && return 0 + fi error $"Argument to %s must be a number" "$2" return 1 fi