# $Id: setup 309 2005-08-03 09:27:45Z yaegashi $
usage_setup() {
echo "Usage: $program setup"
}
cmd_setup() {
# Process command line options
while test "$#" != "0"; do
case "$1" in
-h|--help)
usage_setup
exit 0
;;
--)
break
;;
-*)
usage_setup >&2
exit 1
;;
*)
break
;;
esac
shift
done
#
set -e
title="Arcade Linux Setup"
# Show banner and dialogs
probe_networks
msgbox "\
*** Arcade Linux Setup ***
(C) 2004 NAMCO LIMITED, ALL RIGHTS RESERVED.
Version: $ARCADE_VERSION
Ethernet Address: $ETHERNET" 12 60
keymaps=`cat /usr/share/arcade/keymaps`
eval menu '"$ARCADE_KEYMAP" "Select preferred key map:"' 20 70 12 $keymaps
ARCADE_KEYMAP="$answer"
zones=`find /usr/share/zoneinfo/posix -type f -not -name Factory -printf "%P\n" | sort | while read tz; do echo $tz; TZ=$tz date +"\" %z %Z\""; done`
eval menu '"$ARCADE_TZ" "Select your time zone:"' 20 70 12 $zones
ARCADE_TZ="$answer"
done=no
while test "$done" = "no"; do
passwordbox "Enter password for user arcade:" 8 60
pass1="$answer"
passwordbox "Retype password:" 8 60
pass2="$answer"
if test "$pass1" = "$pass2"; then
ARCADE_PASSWORD="$pass1"
done=yes
else
msgbox " Sorry, passwords do not match." 7 60
fi
done
inputbox "Enter this machine's hostname:" 8 60 "$ARCADE_HOSTNAME"
ARCADE_HOSTNAME="$answer"
inputbox "Enter workgroup for Windows network:" 8 60 "$ARCADE_WORKGROUP"
ARCADE_WORKGROUP="$answer"
yesno $ARCADE_DHCP "Do you want to use DHCP?" 7 60
ARCADE_DHCP="$answer"
case "$ARCADE_DHCP" in
no|No)
inputbox "Enter IP address:" 8 60 "$ARCADE_INET"
ARCADE_INET="$answer"
inputbox "Enter netmask:" 8 60 "$ARCADE_NETMASK"
ARCADE_NETMASK="$answer"
inputbox "Enter broadcast address:" 8 60 "$ARCADE_BROADCAST"
ARCADE_BROADCAST="$answer"
inputbox "Enter default gateway:" 8 60 "$ARCADE_GATEWAY"
ARCADE_GATEWAY="$answer"
inputbox "Enter nameserver's address:" 8 60 "$ARCADE_NAMESERVER"
ARCADE_NAMESERVER="$answer"
;;
*)
;;
esac
# Save settings
cat > "$ARCADE_CONFIG" <<HERE
ARCADE_KEYMAP="$ARCADE_KEYMAP"
ARCADE_TZ="$ARCADE_TZ"
ARCADE_HOSTNAME="$ARCADE_HOSTNAME"
ARCADE_DHCP="$ARCADE_DHCP"
ARCADE_INET="$ARCADE_INET"
ARCADE_NETMASK="$ARCADE_NETMASK"
ARCADE_BROADCAST="$ARCADE_BROADCAST"
ARCADE_GATEWAY="$ARCADE_GATEWAY"
ARCADE_NAMESERVER="$ARCADE_NAMESERVER"
ARCADE_WORKGROUP="$ARCADE_WORKGROUP"
HERE
cat > /tmp/smb.conf <<EOF
[global]
passdb backend = smbpasswd:$ARCADE_SMBPASSWD
EOF
smbpasswd -c /tmp/smb.conf -s -a arcade <<EOF
$ARCADE_PASSWORD
$ARCADE_PASSWORD
EOF
rm -f /tmp/smb.conf
if test -n "$ARCADE_PASSWORD"; then
crypt=`echo $ARCADE_PASSWORD | perl -ne '$salt = pack("CC", rand 64, rand 64); $salt =~ tr[\000-\077][0-9a-zA-Z./]; chomp; print crypt($_, $salt);'`
else
crypt=""
fi
echo "arcade:$crypt:1000:1000:&:/arcade:/bin/bash" > $ARCADE_ETCPASSWD
}