#!/bin/sh
#
# adduser script for use with shadow passwords and useradd command.
# by Hrvoje Dogan <hdogan@student.math.hr>, Dec 1995.
#
# Japanese enhancements by kojima <isle@st.rim.or.jp> Aug 1997
# Time-stamp: <2006-02-03 21:46:55 kojima>
# Time-stamp: <2011-01-05 01:24:06 plamo>
# Time-stamp: <2011-07-25 19:03:24 karma>
# Time-stamp: <2011-10-08 13:32:46 tamuki>
# Time-stamp: <2011-12-07 00:22:20 kojima>
# Time-stamp: <2016-01-22 19:55:16 kojima>

DEFAULT_GROUP=users
DEFAULT_AGID=audio,dialout,video,cdrom,kvm,pulse,pulse-access,mlocate,libvirt
DEFAULT_HOME_DIR=/home
DEFAULT_SHELL=/bin/bash
DEFAULT_HOME_DIR_MODE=711

######################################################################

backup_oldfile() {
  DIR=$1
  FILE=${2##*/}
  if [ $FILE != $SKELDIR/Default ] ; then
    if [ -f $DIR/$FILE ] ; then
      if [ -f $DIR/$FILE.old ] ; then
        backup_oldfile $DIR $FILE.old
        FILE=${2##*/}
      fi
      mv $DIR/$FILE $DIR/$FILE.old
    elif [ -d $DIR/$FILE ] ; then
      if [ -d $DIR/$FILE.org ] ; then
        backup_oldfile $DIR $FILE.org
        FILE=${2##*/}
      fi
      mv $DIR/$FILE $DIR/$FILE.org
    fi
  fi
}

######################################################################

msg_login_name() {
  echo
  if [ "$LNG" == "JAPANESE" ] ; then
    echo -n "桼Υ̾ꤷƤ(8 ʸ) []: "
  else
    echo -n "Login name for new user (8 characters or less) []: "
  fi
}

msg_err_login_name() {
  if [ "$LNG" == "JAPANESE" ] ; then
    echo "ǰʤ̾ꤻˤϿʤޤ󡣡"
  else
    echo "Come on, man, you can't leave the login field empty..."
  fi
}

msg_user_id() {
  if [ "$LNG" == "JAPANESE" ] ; then
    echo -n "$LOGIN Υ桼 ID ϡ [ưϿξ 1000 ˤʤޤ]: "
  else
    echo -n "User ID for $LOGIN [defaults to next available]: "
  fi
}

msg_grp_name() {
  if [ "$LNG" == "JAPANESE" ] ; then
    echo -n "$LOGIN °륰롼פϡ [$DEFAULT_GROUP]: "
  else
    echo -n "Initial group for $LOGIN [$DEFAULT_GROUP]: "
  fi
}

msg_add_gid() {
  if [ "$LNG" == "JAPANESE" ] ; then
    echo "$LOGIN ¾Υ롼פˤ°ޤ"
    echo "  (ǥեɲä --> add:<group1>,<group2>,..."
    echo "   ¾ΤɤΥ롼פˤ°ʤ --> none)"
    echo -n "  [$DEFAULT_AGID]: "
  else
    echo "Additional group for $LOGIN"
    echo "  (add to the default setting --> add:<group1>,<group2>,..."
    echo "   no additional group --> none)"
    echo -n "  [$DEFAULT_AGID]: "
  fi
}

msg_home_dir() {
  if [ "$LNG" == "JAPANESE" ] ; then
    echo -n "$LOGIN Υۡǥ쥯ȥϡ [$DEFAULT_HOME_DIR/$LOGIN]: "
  else
    echo -n "$LOGIN's home directory [$DEFAULT_HOME_DIR/$LOGIN]: "
  fi
}

msg_shell() {
  if [ "$LNG" == "JAPANESE" ] ; then
    echo -n "$LOGIN Ȥϡ [$DEFAULT_SHELL]: "
  else
    echo -n "$LOGIN's shell [$DEFAULT_SHELL]: "
  fi
}

msg_locale() {
  echo
  if [ "$LNG" == "JAPANESE" ] ; then
    echo "ܸ locale "
    echo "1 : ja_JP.eucJP(̤)"
    echo "2 : ja_JP.UTF-8()"
    echo -n "$LOGIN Ϥɤ locale Ȥޤ [1]: "
  else
    echo "Japanese locale setting"
    echo "1 : ja_JP.eucJP (traditional)"
    echo "2 : ja_JP.UTF-8 (modern)"
    echo -n "$LOGIN's locale? [1]: "
  fi
}

msg_w_manager() {
  echo
  if [ "$LNG" == "JAPANESE" ] ; then
    n=0 ; IWM[$n]=0 ; echo "ɥޥ͡"
    if [ -x /usr/bin/afterstep ] ; then
      let ++n ; IWM[$n]=1 ; echo "$n : AfterStep(NextStep )"
    fi
    if [ -x /usr/bin/qvwm ] ; then
      let ++n ; IWM[$n]=2 ; echo "$n : Qvwm(Windows 95/98/2000 )"
    fi
    if [ -x /usr/bin/twm ] ; then
      let ++n ; IWM[$n]=3 ; echo "$n : Twm(ץ)"
    fi
    if [ -x /usr/bin/startxfce4 ] ; then
      let ++n ; IWM[$n]=4 ; echo "$n : Xfce Desktop()"
    fi
    if [ -x /opt/kde/bin/startkde ] ; then
      let ++n ; IWM[$n]=5 ; echo "$n : KDE Desktop(ɤŤ)"
    fi
    if [ -x /usr/bin/mate-session ] ; then
      let ++n ; IWM[$n]=6 ; echo "$n : MATE Desktop(GNOME2 οʲ)"
    fi
    NWM=$n
    if [ $NWM -ne 0 ] ; then
      for i in 4 6 5 1 2 3 ; do
        for j in `seq $NWM` ; do [ "${IWM[j]}" -eq $i ] && break 2 ; done
      done
      DWM=$j ; echo -n "$LOGIN Ȥ WM ϡ [$DWM]: "
    else
      DWM=0 ; echo -n " WM ⸫ĤʤΤǰ餺 [Enter]: "
    fi
  else
    n=0 ; IWM[$n]=0 ; echo "Window Manager setting"
    if [ -x /usr/bin/afterstep ] ; then
      let ++n ; IWM[$n]=1 ; echo "$n : AfterStep (NextStep like)"
    fi
    if [ -x /usr/bin/qvwm ] ; then
      let ++n ; IWM[$n]=2 ; echo "$n : Qvwm (Windows 95/98/2000 like)"
    fi
    if [ -x /usr/bin/twm ] ; then
      let ++n ; IWM[$n]=3 ; echo "$n : Twm (too simple)"
    fi
    if [ -x /usr/bin/startxfce4 ] ; then
      let ++n ; IWM[$n]=4 ; echo "$n : Xfce Desktop (recommended)"
    fi
    if [ -x /opt/kde/bin/startkde ] ; then
      let ++n ; IWM[$n]=5 ; echo "$n : KDE Desktop (useful, but somewhat heavy)"
    fi
    if [ -x /usr/bin/mate-session ] ; then
      let ++n ; IWM[$n]=6 ; echo "$n : MATE Desktop (advanced GNOME2)"
    fi
    NWM=$n
    if [ $NWM -ne 0 ] ; then
      for i in 4 6 5 1 2 3 ; do
        for j in `seq $NWM` ; do [ "${IWM[j]}" -eq $i ] && break 2 ; done
      done
      DWM=$j ; echo -n "$LOGIN's WM? [$DWM]: "
    else
      DWM=0 ; echo -n "Sorry, any WM not found... [Enter]: "
    fi
  fi
}

msg_trad_im_input() {
  echo
  if [ "$LNG" == "JAPANESE" ] ; then
    echo "ܸ(Ū IM  SKK ѻΤͭ)"
    echo "1 : ޻"
    echo "2 : "
    echo "3 : NICOLA(ƻإե)"
    echo -n "$LOGIN ϥ޻ϡNICOLA ϤΤɤȤޤ [1]: "
  else
    echo "Japanese input method (traditional IM and SKK only)"
    echo "1 : Roma"
    echo "2 : Kana (Japanese keyboard only)"
    echo "3 : NICOLA (Japanese keyboard only)"
    echo -n "Which is $LOGIN's method, roma, kana or NICOLA? [1]: "
  fi
}

msg_use_newgen_im() {
  echo
  if [ "$LNG" == "JAPANESE" ] ; then
    n=0 ; IIM[$n]=0 ; echo "uim/SCIM/ibus "
    if [ -x /usr/bin/uim-xim ] ; then
      let ++n ; IIM[$n]=1 ; echo "$n : uim"
    fi
    if [ -x /usr/bin/scim ] ; then
      let ++n ; IIM[$n]=2 ; echo "$n : SCIM"
    fi
    if [ -x /usr/bin/ibus-daemon ] ; then
      let ++n ; IIM[$n]=3 ; echo "$n : ibus"
    fi
    NIM=$n
    if [ $NIM -ne 0 ] ; then
      for i in 1 3 2 ; do
        for j in `seq $NIM` ; do [ "${IIM[j]}" -eq $i ] && break 2 ; done
      done
      DIM=$j ; echo "0 :  uim/SCIM/ibus Ѥʤ"
      echo -n "$LOGIN Ū IM ˿ IM Ȥޤ [$DIM]: "
    else
      DIM=0 ; echo -n "ο IM ⸫ĤޤǤ [Enter]: "
    fi
  else
    n=0 ; IIM[$n]=0 ; echo "uim/SCIM/ibus"
    if [ -x /usr/bin/uim-xim ] ; then
      let ++n ; IIM[$n]=1 ; echo "$n : uim"
    fi
    if [ -x /usr/bin/scim ] ; then
      let ++n ; IIM[$n]=2 ; echo "$n : SCIM"
    fi
    if [ -x /usr/bin/ibus-daemon ] ; then
      let ++n ; IIM[$n]=3 ; echo "$n : ibus"
    fi
    NIM=$n
    if [ $NIM -ne 0 ] ; then
      for i in 1 3 2 ; do
        for j in `seq $NIM` ; do [ "${IIM[j]}" -eq $i ] && break 2 ; done
      done
      DIM=$j ; echo "0 : No, I don't want to use uim/SCIM/ibus for now"
      echo -n "Does $LOGIN want to use new IMs instead of traditional IMs? [$DIM]: "
    else
      DIM=0 ; echo -n "Any new IM not found... [Enter]: "
    fi
  fi
}

msg_visual_bell() {
  echo
  if [ "$LNG" == "JAPANESE" ] ; then
    echo -n "$LOGIN ϥӥ奢٥Ȥޤ (Emacskterm ʤɤͭ) [y/N]: "
  else
    echo -n "Does $LOGIN want to use visual bell? (for Emacs, kterm, etc.) [y/N]: "
  fi
}

msg_font_size() {
  echo
  if [ "$LNG" == "JAPANESE" ] ; then
    echo "ɸ X( Xfce/KDE/MATE)Ķեȥ"
    echo "(AfterStepQvwm ĶŬѤޤ)"
    echo "12141618 ζͤꤷƤ"
  else
    echo "Font size settings for the standard X11 environments"
    echo "(AfterStep and Qvwm environments)"
    echo "Choose 12, 14, 16 or 18."
  fi
}

msg_font_size_ui() {
  if [ "$LNG" == "JAPANESE" ] ; then
    echo -n "桼󥿥եΥեȥ [12]: "
  else
    echo -n "User interface [12]: "
  fi
}

msg_font_size_term() {
  if [ "$LNG" == "JAPANESE" ] ; then
    echo -n "üƥȥꥢΥեȥ [14]: "
  else
    echo -n "Terminal and text area [14]: "
  fi
}

msg_font_size_editor() {
  if [ "$LNG" == "JAPANESE" ] ; then
    echo -n "ǥ(Emacs)Υեȥ [16]: "
  else
    echo -n "Editor (Emacs) [16]: "
  fi
}

msg_expiry_date() {
  echo
  if [ "$LNG" == "JAPANESE" ] ; then
    echo -n "$LOGIN ΥȤͭ¤ϡ (YYYY-MM-DD) []: "
  else
    echo -n "$LOGIN's account expiry date (YYYY-MM-DD) []: "
  fi
}

msg_conf() {
  echo
  if [ "$LNG" == "JAPANESE" ] ; then
    echo "ơºݤɬפʥȥޤǡϤǤǤ"
  else
    echo "OK, I'm about to make a new account.  Here's what you entered so far:"
  fi
  echo
}

msg_overwrite() {
  echo
  if [ "$LNG" == "JAPANESE" ] ; then
    echo "$HME ¸ߤޤ$HME/.tcshrc  $HME/.login "
    echo "Plamo ΥǥեȤ˽񤭴ޤޤ󤫡 [y/N]"
    echo "Υե $HME/.tcshrc.old Τ褦˥Хååפ"
    echo "¸ޤ(.*.old ǤˤС̵ѤǾ񤭤ޤ;-)"
  else
    echo "$HME exists. $HME/.tcshrc or $HME/.login will be"
    echo "overwritten by Plamo's default configuration files.  OK? [y/N]"
  fi
}

msg_conf2() {
  echo
  if [ "$LNG" == "JAPANESE" ] ; then
    echo "Ͽߤ Ctrl-C 򲡤ƤΥǡɤ"
    echo "Enter 򲡤ƤСȤޤ"
  else
    echo "This is it... if you want to bail out, hit Control-C.  Otherwise, press"
    echo "ENTER to go ahead and make the account."
  fi
}

msg_creating() {
  echo
  if [ "$LNG" == "JAPANESE" ] ; then
    echo "Ⱥ..."
  else
    echo "Making new account..."
  fi
}

msg_last() {
  echo
  if [ "$LNG" == "JAPANESE" ] ; then
    echo "$SKELDIR/Default ʲγƼեۡǥ쥯ȥ˥ԡޤ"
    echo "Ͽλޤ"
    echo
    echo "桼ǥ󥽡뤫󤷡startx Сܸ X Ķ"
    echo "ѤǤޤ"
  else
    echo "Done..."
  fi
}

wait_press_enter() {
  if [ "$LNG" == "JAPANESE" ] ; then
    echo -n "[Enter򲡤Ƥ]"
  else
    echo -n "[Press Enter]"
  fi
  read FOO
}

######################################################################

SKELDIR=/etc/template

if [ -n "$1" ] ; then
  if [ "${1::2}" == "ja" ] ; then ANS="y" ; fi
else
  if [ "$TERM" == "linux" ] ; then
    echo "Can you read Japanese chars on this term? [y/N]"
    read ANS
    if [ "$ANS" == "Y" -o "$ANS" == "y" ] ; then ANS="y" ; fi
  else
    echo "Can you read Japanese chars on this term? [Y/n]"
    read ANS
    if [ "$ANS" != "N" -a "$ANS" != "n" ] ; then ANS="y" ; fi
  fi
fi

if [ "$ANS" == "y" ] ; then
  echo "Japanese mode"
  LNG="JAPANESE"
else
  echo "No Japanese mode"
  LNG=""
fi

#桼Υ̾ꤷƤ(8 ʸ)
msg_login_name
read LOGIN
if [ -z "$LOGIN" ] ; then
  #ǰʤ̾ꤻˤϿʤޤ󡣡
  msg_err_login_name
  exit
fi

#$LOGIN Υ桼 ID ϡ
msg_user_id
read USERID
if [ -z "$USERID" ] ; then
  GUID=""
else
  GUID="-u $USERID"
fi

#$LOGIN °륰롼פϡ
msg_grp_name
read GROUPID
if [ -z "$GROUPID" ] ; then
  GROUPID="$DEFAULT_GROUP"
fi
GGID="-g $GROUPID"

#$LOGIN ¾Υ롼פˤ°ޤ
msg_add_gid
read AGID
if [ -z "$AGID" ] ; then
  AGID="$DEFAULT_AGID"
elif [ "${AGID:0:4}" == "add:" ] ; then
  AGID="$DEFAULT_AGID,${AGID#*:}"
fi
if [ "$AGID" == "none" ] ; then
  GAGID=""
else
  GAGID="-G $AGID"
fi

#$LOGIN Υۡǥ쥯ȥϡ
msg_home_dir
read HME
if [ -z "$HME" ] ; then
  HME="$DEFAULT_HOME_DIR/$LOGIN"
fi
GHME="-d $HME"

#$LOGIN Ȥϡ
msg_shell
read SHL
if [ -z "$SHL" ] ; then
  SHL="$DEFAULT_SHELL"
fi
GSHL="-s $SHL"

#ܸ locale 
msg_locale
read LOC
if [ -z "$LOC" ] ; then
  LOC=1
elif [ "$LOC" -lt 1 ] ; then
  LOC=1
elif [ "$LOC" -gt 2 ] ; then
  LOC=1
fi

#ɥޥ͡
msg_w_manager
read WM
if [ -z "$WM" ] ; then
  WM=$DWM
elif [ "$WM" -lt 1 ] ; then
  WM=$DWM
elif [ "$WM" -gt "$NWM" ] ; then
  WM=$DWM
fi

#ܸ(Ū IM  SKK ѻΤͭ)
msg_trad_im_input
read TRAD_IM_INPUT
if [ -z "$TRAD_IM_INPUT" ] ; then
  TRAD_IM_INPUT=1
elif [ "$TRAD_IM_INPUT" -lt 1 ] ; then
  TRAD_IM_INPUT=1
elif [ "$TRAD_IM_INPUT" -gt 3 ] ; then
  TRAD_IM_INPUT=1
fi

#uim/SCIM/ibus 
msg_use_newgen_im
read USE_NEWGEN_IM
if [ -z "$USE_NEWGEN_IM" ] ; then
  USE_NEWGEN_IM=$DIM
elif [ "$USE_NEWGEN_IM" -lt 0 ] ; then
  USE_NEWGEN_IM=$DIM
elif [ "$USE_NEWGEN_IM" -gt "$NIM" ] ; then
  USE_NEWGEN_IM=$DIM
fi

#$LOGIN ϥӥ奢٥Ȥޤ (Emacskterm ʤɤͭ)
msg_visual_bell
read VISUALBELL
if [ "$VISUALBELL" == "Y" ] ; then
  VISUALBELL="y"
fi

#ɸ X( Xfce/KDE/MATE)Ķեȥ
msg_font_size
#桼󥿥եΥեȥ
msg_font_size_ui
read FSIZE_UI
if [ -z "$FSIZE_UI" ] ; then
  FSIZE_UI=12
fi
#üƥȥꥢΥեȥ
msg_font_size_term
read FSIZE_TERM
if [ -z "$FSIZE_TERM" ] ; then
  FSIZE_TERM=14
fi
#ǥ(Emacs)Υեȥ
msg_font_size_editor
read FSIZE_EDITOR
if [ -z "$FSIZE_EDITOR" ] ; then
  FSIZE_EDITOR=16
fi

#$LOGIN ΥȤͭ¤ϡ (YYYY-MM-DD)
msg_expiry_date
read EXP
GEXP="-e $EXP"
if [ -z "$EXP" ] ; then
  GEXP=""
fi

#ơºݤɬפʥȥޤǡϤǤǤ
msg_conf
echo New login name: $LOGIN
if [ -z "$GUID" ] ; then
  echo New UID: [Next available]
else
  echo New UID: $USERID
fi
echo Initial group: $GROUPID
if [ -z "$GAGID" ] ; then
  echo Additional groups: [none]
else
  echo Additional groups: $AGID
fi
echo Home directory: $HME
echo Shell: $SHL
if [ -z "$GEXP" ] ; then
  echo Expiry date: [no expiration]
else
  echo Expiry date: $EXP
fi

if [ -d $HME ] ; then
  #$HME ¸ߤޤ$HME/.tcshrc  $HME/.login 
  #Plamo ΥǥեȤ˽񤭴ޤޤ󤫡
  msg_overwrite
  read ANS
  if [ -z $ANS ] ; then
    ANS="N"
  fi
  if [ "$ANS" != "Y" -a "$ANS" != "y" ] ; then
    exit -1
  fi
fi

#Ͽߤ Ctrl-C 򲡤ƤΥǡɤ
#Enter 򲡤ƤСȤޤ
msg_conf2
read FOO

# mkdefaultenv.sh  /etc/template/Default ʲ򤹤٤ƺ
# /etc/template/Source  /etc/template/Default ƺޤ
echo -n "Executing $SKELDIR/mkdefaultenv.sh $SKELDIR/Source "
echo -n "$LOC $FSIZE_UI $FSIZE_TERM $FSIZE_EDITOR ..."
$SKELDIR/mkdefaultenv.sh $SKELDIR/Source \
    $LOC $FSIZE_UI $FSIZE_TERM $FSIZE_EDITOR 1> /dev/null
echo " OK"

if [ "${IWM[WM]}" -eq 1 ] ; then
  sed -i 's/WM="xfce"/#&/;s/#\(WM="step"\)/\1/' $SKELDIR/Default/.xinitrc
elif [ "${IWM[WM]}" -eq 2 ] ; then
  sed -i 's/WM="xfce"/#&/;s/#\(WM="qvwm"\)/\1/' $SKELDIR/Default/.xinitrc
elif [ "${IWM[WM]}" -eq 3 ] ; then
  sed -i 's/WM="xfce"/#&/;s/#\(WM="twm"\)/\1/' $SKELDIR/Default/.xinitrc
elif [ "${IWM[WM]}" -eq 5 ] ; then
  sed -i 's/WM="xfce"/#&/;s/#\(WM="kde"\)/\1/' $SKELDIR/Default/.xinitrc
elif [ "${IWM[WM]}" -eq 6 ] ; then
  sed -i 's/WM="xfce"/#&/;s/#\(WM="mate"\)/\1/' $SKELDIR/Default/.xinitrc
fi

if [ "$TRAD_IM_INPUT" -eq 1 ] ; then
  sed -i -e 's/\[ -x.*uim/#&/;s/#\(.*CC\)/\1/;s/#\(\[ -[fx].*kinput2\)/\1/' \
      -e 's/XM.*uim/#&/;s/#\(XM.*kinput2\)/\1/' \
      -e 's/QT.*uim/#&/;s/GTK.*uim/#&/;s/#\(QT.*xim\)/\1/;s/#\(GTK.*xim\)/\1/' \
      $SKELDIR/Default/.xinitrc
  sed -i 's/\*in.*uim/!&/;s/!\(\*in.*kinput2\)/\1/' \
      $SKELDIR/Default/.Xdefaults
elif [ "$TRAD_IM_INPUT" -eq 2 ] ; then
  sed -i -e 's/\[ -x.*uim/#&/;s/#\(.*CC\)/\1/;s/#\(\[ -[fx].*kinput2\)/\1/' \
      -e 's/XM.*uim/#&/;s/#\(XM.*kinput2\)/\1/' \
      -e 's/QT.*uim/#&/;s/GTK.*uim/#&/;s/#\(QT.*xim\)/\1/;s/#\(GTK.*xim\)/\1/' \
      $SKELDIR/Default/.xinitrc
  sed -i -e 's/\*in.*uim/!&/;s/!\(\*in.*kinput2\)/\1/' \
      -e 's/!\(Emacs\*useXim\)/\1/' $SKELDIR/Default/.Xdefaults
  sed -i -e 's/(setq canna-input-method "roma")/;&/' \
      -e 's/;\((setq canna-input-method "kana")\)/\1/' \
      $SKELDIR/Default/.canna
  sed -i -e 's/;\((setq skk-use-kana-keyboard t)\)/\1/' \
      -e "s/;\((setq skk-kanagaki-keyboard-type '106-jis)\)/\1/" \
      $SKELDIR/Default/.skk
elif [ "$TRAD_IM_INPUT" -eq 3 ] ; then
  sed -i -e 's/\[ -x.*uim/#&/;s/#\(\[ -x.*nicola\)/\1/' \
      -e 's/XM.*uim/#&/;s/#\(XM.*nicola\)/\1/' \
      -e 's/QT.*uim/#&/;s/GTK.*uim/#&/;s/#\(QT.*xim\)/\1/;s/#\(GTK.*xim\)/\1/' \
      $SKELDIR/Default/.xinitrc
  sed -i 's/\*in.*uim/!&/;s/!\(\*in.*nicola\)/\1/' \
      $SKELDIR/Default/.Xdefaults
  sed -i -e 's/;\((setq skk-use-kana-keyboard t)\)/\1/' \
      -e "s/;\((setq skk-kanagaki-keyboard-type 'nicola-jis)\)/\1/" \
      $SKELDIR/Default/.skk
fi

if [ "${IIM[USE_NEWGEN_IM]}" -eq 1 ] ; then
  sed -i -e 's/^.*CC/#&/;s/^\[ -[fx].*kinput2/#&/' \
      -e 's/^\[ -x.*nicola/#&/;s/#\(\[ -x.*uim\)/\1/' \
      -e 's/^XM.*kinput2/#&/;s/^XM.*nicola/#&/;s/#\(XM.*uim\)/\1/' \
      -e 's/QT.*xim/#&/;s/GTK.*xim/#&/;s/#\(QT.*uim\)/\1/;s/#\(GTK.*uim\)/\1/' \
      $SKELDIR/Default/.xinitrc
  sed -i 's/^\*in.*kinput2/!&/;s/^\*in.*nicola/!&/;s/!\(\*in.*uim\)/\1/' \
      $SKELDIR/Default/.Xdefaults
elif [ "${IIM[USE_NEWGEN_IM]}" -eq 2 ] ; then
  sed -i -e 's/^.*CC/#&/;s/^\[ -[fx].*kinput2/#&/' \
      -e 's/^\[ -x.*nicola/#&/;s/#\(\[ -x.*scim\)/\1/' \
      -e 's/^XM.*kinput2/#&/;s/^XM.*nicola/#&/;s/#\(XM.*SCIM\)/\1/' \
      -e 's/QT.*xim/#&/;s/GTK.*xim/#&/;s/#\(QT.*scim\)/\1/;s/#\(GTK.*scim\)/\1/' \
      $SKELDIR/Default/.xinitrc
  sed -i 's/^\*in.*kinput2/!&/;s/^\*in.*nicola/!&/;s/!\(\*in.*SCIM\)/\1/' \
      $SKELDIR/Default/.Xdefaults
elif [ "${IIM[USE_NEWGEN_IM]}" -eq 3 ] ; then
  sed -i -e 's/^.*CC/#&/;s/^\[ -[fx].*kinput2/#&/' \
      -e 's/^\[ -x.*nicola/#&/;s/#\(\[ -x.*ibus\)/\1/' \
      -e 's/^XM.*kinput2/#&/;s/^XM.*nicola/#&/;s/#\(XM.*ibus\)/\1/' \
      -e 's/QT.*xim/#&/;s/GTK.*xim/#&/;s/#\(QT.*ibus\)/\1/;s/#\(GTK.*ibus\)/\1/' \
      $SKELDIR/Default/.xinitrc
  sed -i 's/^\*in.*kinput2/!&/;s/^\*in.*nicola/!&/;s/!\(\*in.*ibus\)/\1/' \
      $SKELDIR/Default/.Xdefaults
fi

if [ "$VISUALBELL" == "y" ] ; then
  sed -i 's/;\((setq visible-bell t)\)/\1/' \
      $SKELDIR/Default/.emacs.d/site-start.d/behavior.el
  sed -i 's/!\(.*\*visualBell\)/\1/' $SKELDIR/Default/.Xdefaults
fi

#Ⱥ...
msg_creating

if [ -d $HME ] ; then # backup old files
  find $SKELDIR/Default -maxdepth 1 -exec backup_oldfile $HME {} \;
fi

useradd $GHME -m $GEXP $GGID $GAGID $GSHL $GUID $LOGIN
chmod $DEFAULT_HOME_DIR_MODE $HME

if [ -x /usr/sbin/sendmail ] ; then
  if [ ! -f /usr/spool/mail/$LOGIN ] ; then
    cat $SKELDIR/mime-mail.sample > /usr/spool/mail/$LOGIN
    chown $LOGIN.mail /usr/spool/mail/$LOGIN
    chmod 660 /usr/spool/mail/$LOGIN
  fi
fi

echo
chfn $LOGIN
echo
passwd $LOGIN

#$SKELDIR/Default ʲγƼեۡǥ쥯ȥ˥ԡޤ
#Ͽλޤ
msg_last
if [ -n "$DISPLAY" ] ; then
  echo
  wait_press_enter
fi
