File:  [ELWIX - Embedded LightWeight unIX -] / elwix / config / etc / uboot / rc.initial
Revision 1.2: download - view: text, annotated - select for diffs - revision graph
Mon Sep 15 19:06:47 2014 UTC (10 years, 1 month ago) by misho
Branches: MAIN
CVS tags: elwix2_8, elwix2_7, elwix2_6, elwix2_3, HEAD, ELWIX2_7, ELWIX2_6, ELWIX2_5, ELWIX2_2p0
elwix 2.2

    1: #!/bin/sh
    2: #
    3: # ELWIX Initial RC Menu script
    4: #
    5: # $Id: rc.initial,v 1.2 2014/09/15 19:06:47 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) Save configz to NAND"
   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: 			exec $SHELL
  111: 			;;
  112: 		9)
  113: 			echo "Saving configz to NAND ... "
  114: 			/etc/rc.cfg save /etc
  115: 			;;
  116: 	esac
  117: }
  118: 
  119: ### main()
  120: 
  121: while : ; do
  122: 	if [ -r /etc/disablemenu ]; then
  123: 		echo
  124: 		echo
  125: 		echo "*** Console menu disabled. ***"
  126: 		echo
  127: 
  128: 		stty -echo
  129: 		read tmp
  130: 		stty echo
  131: 		if [ X"${tmp}" = X"${MAGIC_MENU}" ]; then
  132: 			echo
  133: 			echo "> OK, temporary unhide menu ..."
  134: 			echo
  135: 
  136: 			menu
  137: 		fi
  138: 	else
  139: 		menu
  140: 	fi
  141: done

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