File:  [ELWIX - Embedded LightWeight unIX -] / elwix / config / etc / default / rc.initial
Revision 1.4: download - view: text, annotated - select for diffs - revision graph
Tue May 7 20:46:48 2013 UTC (11 years, 2 months ago) by misho
Branches: MAIN
CVS tags: elwix1_9_mips, elwix1_9, HEAD, ELWIX1_8
elwix 1.8

    1: #!/bin/sh
    2: #
    3: # ELWIX Initial RC Menu script
    4: #
    5: # $Id: rc.initial,v 1.4 2013/05/07 20:46:48 misho Exp $
    6: #
    7: 
    8: trap : 2
    9: trap : 3
   10: trap : 18
   11: exec </dev/console >/dev/console 2>/dev/console
   12: MAGIC_MENU="menu"
   13: 
   14: menu()
   15: {
   16: 	echo
   17: 	echo
   18: 	echo "ELWIX - console setup"
   19: 	echo "*********************"
   20: 	echo "0) Logout"
   21: 	echo "1) Interfaces: assign network ports"
   22: 	echo "2) Reset root password"
   23: 	echo "3) Reset webGUI password"
   24: 	echo "4) Reset to factory defaults"
   25: 	echo "5) Reboot system"
   26: 	echo "6) Ping host"
   27: 	echo "7) SSH to host"
   28: 	echo "8) Go to shell"
   29: 	echo "9) Clone system on other drive";
   30: 	echo
   31: 
   32: 	read -p "Enter number: " opcode
   33: 
   34: 	case ${opcode} in
   35: 		0)
   36: 			exit
   37: 			;;
   38: 		1)
   39: 			IFACES=$(ifconfig -l)
   40: 			echo
   41: 			echo "Available interfaces: $IFACES"
   42: 			read -p " +Which from them: " iface
   43: 			if [ -z "$iface" ]; then
   44: 				return 1
   45: 			fi
   46: 			read -p " +Name of interface $iface []: " name
   47: 			read -p " +Setup management vlan 4093 on $iface? [no|yes]: " mgmt
   48: 			read -p " +IPv4 address/mask of interface $iface [dhcp|x.x.x.x/x]: " ip4
   49: 			read -p " +IPv6 address/mask of interface $iface [auto|x:x:x::x/x]: " ip6
   50: 			if [ X"$mgmt" = X"yes" -o X"$mgmt" = X"y" ]; then
   51: 				cfexec sh -c "echo $iface >/etc/mylan"
   52: 			fi
   53: 			ifconfig $iface description "$name" up
   54: 			if [ -n "$ip4" ]; then
   55: 				if [ X"$ip4" != X"dhcp" ]; then
   56: 					ifconfig $iface inet alias $ip4
   57: 				else
   58: 					dhclient $iface
   59: 				fi
   60: 			fi
   61: 			if [ -n "$ip6" ]; then
   62: 				ifconfig $iface inet6 auto_linklocal -ifdisabled
   63: 				if [ X"$ip6" != X"auto" ]; then
   64: 					ifconfig $iface inet6 -accept_rtadv
   65: 					ifconfig $iface inet6 alias $ip6
   66: 				else
   67: 					ifconfig $iface inet6 accept_rtadv
   68: 				fi
   69: 			fi
   70: 			;;
   71: 		2)
   72: 			passwd root
   73: 			;;
   74: 		3)
   75: 			echo
   76: 			read -p "New system webGUI password: " pass
   77: 			read -p "Confirm system webGUI password: " confirm
   78: 			if [ X"$pass" = X"$confirm" ]; then
   79: 				cfexec xmler -s /elwix/system/password /elwix/etc/config.xml \
   80: 					$(md5 -qs "$pass")
   81: 			else
   82: 				echo "Error:: passwords are different ..."
   83: 			fi
   84: 			;;
   85: 		4)
   86: 			echo
   87: 			echo "Restore factory defaults ..."
   88: 			read -p " +Are you sure for restore and clear all changes? [no|yes]: " ans
   89: 			if [ X"$ans" = X"yes" -o X"$ans" = X"y" ]; then
   90: 				cfexec rm -rf /elwix/etc/rc.S /elwix/etc/rc.s /elwix/etc/rc.t
   91: 				cfexec tar -xzpf /elwix/altroot/backup/.var.tgz -C /elwix/altroot
   92: 				cfexec tar -xzpf /elwix/altroot/backup/.etc.tgz -C /elwix
   93: 			fi
   94: 			;;
   95: 		5)
   96: 			reboot
   97: 			;;
   98: 		6)
   99: 			read -p " +Address: " host
  100: 			read -p " +Number packets [4]: " cx
  101: 			ping -n -c ${cx:-4} ${host:-localhost}
  102: 			;;
  103: 		7)
  104: 			read -p " +Address: " host
  105: 			read -p " +Port [22]: " port
  106: 			read -p " +User [$USER]: " user
  107: 			ssh -p ${port:-22} -l ${user:-$USER} ${host:-localhost}
  108: 			;;
  109: 		8)
  110: 			$SHELL
  111: 			;;
  112: 		9)
  113: 			echo
  114: 			camcontrol devlist
  115: 			echo
  116: 			read -p " +Select copy from drive [like: ada0]: " src
  117: 			read -p " +Select copy to drive [like: ada1]: " dst
  118: 			if [ -n "$src" -a -n "$dst" ]; then
  119: 				if [ -x /usr/sbin/diskinfo ]; then
  120: 					diskinfo $dst
  121: 					if [ $? -eq 0 ]; then
  122: 						read -p " +This is right choice? [no|yes]: " ask
  123: 						if [ X"$ask" = X"yes" -o X"$ask" = X"y" ]; then
  124: 							dd if=/dev/$src of=/dev/$dst
  125: 						fi
  126: 					fi
  127: 				fi
  128: 			fi
  129: 			;;
  130: 	esac
  131: }
  132: 
  133: ### main()
  134: 
  135: while : ; do
  136: 	if [ -r /etc/disablemenu ]; then
  137: 		echo
  138: 		echo
  139: 		echo "*** Console menu disabled. ***"
  140: 		echo
  141: 
  142: 		stty -echo
  143: 		read tmp
  144: 		stty echo
  145: 		if [ X"${tmp}" = X"${MAGIC_MENU}" ]; then
  146: 			echo
  147: 			echo "> OK, temporary unhide menu ..."
  148: 			echo
  149: 
  150: 			menu
  151: 		fi
  152: 	else
  153: 		menu
  154: 	fi
  155: done

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>