aboutsummaryrefslogtreecommitdiffstats
#!/bin/sh

# The script defaults to curses dialog but Xdialog is a good alternative:
DIALOG=${DIALOG:-"dialog"}

TMP=/var/log/setup/tmp
if [ ! -d $TMP ]; then
  mkdir -p $TMP
fi

UACCOUNT="$1"

UPASS1=""
UPASS2=""
UFORM="Define a new password for user '$UACCOUNT'"

    while [ 0 ]; do
      if [ "${DIALOG}" == "Xdialog" ]; then
        ${DIALOG} --stdout --ok-label "Submit" --no-cancel \
          --title "@UDISTRO@ (@LIVEDE@) USER CREATION" \
          --left --separator="\n" --password --password \
          --2inputsbox "$UFORM" 20 40 \
          "Password: " "$UPASS1" "Repeat password: " "$UPASS2" \
        2>&1 1> $TMP/tempupass
      else
        ${DIALOG} --stdout --ok-label "Submit" --no-cancel \
          --title "@UDISTRO@ (@LIVEDE@) USER CREATION" \
          --insecure --passwordform "$UFORM" 9 64 0 "Password:" \
          1 1 "$UPASS1" 1 18 40 0 "Repeat password:" 2 1 "$UPASS2" 2 18 40 0 \
        2>&1 1> $TMP/tempupass
      fi

      iii=0
      declare -a USERATTR
      while read LINE ; do
        USERATTR[$iii]="$LINE"
        iii=$(expr $iii + 1)
      done < $TMP/tempupass
      rm -f $TMP/tempupass
      UPASS1="${USERATTR[0]}"
      UPASS2="${USERATTR[1]}"
      unset USERATTR
      if [ -z "$UPASS1" ]; then
        UFORM="Password must not be empty, try again for user '$UACCOUNT'"
      elif [ "$UPASS1" == "$UPASS2" ]; then
        break
      else
        UFORM="Passwords do not match, try again for user '$UACCOUNT'"
      fi
    done
    echo "${UPASS1}"
    unset UPASS1
    unset UPASS2
    unset USERATTR