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

#!/bin/sh
#
# ELWIX Initial RC Menu script
#
# $Id: rc.initial,v 1.2 2014/09/15 19:06:47 misho Exp $
#

trap : 2
trap : 3
trap : 18
#exec </dev/console >/dev/console 2>/dev/console
MAGIC_MENU="menu"

menu()
{
	echo
	echo
	echo "ELWIX - console setup"
	echo "*********************"
	echo "0) Logout"
	echo "1) Interfaces: assign network ports"
	echo "2) Reset root password"
	echo "3) Reset webGUI password"
	echo "4) Reset to factory defaults"
	echo "5) Reboot system"
	echo "6) Ping host"
	echo "7) SSH to host"
	echo "8) Go to shell"
	echo "9) Save configz to NAND"
	echo

	read -p "Enter number: " opcode

	case ${opcode} in
		0)
			exit
			;;
		1)
			IFACES=$(ifconfig -l)
			echo
			echo "Available interfaces: $IFACES"
			read -p " +Which from them: " iface
			if [ -z "$iface" ]; then
				return 1
			fi
			read -p " +Name of interface $iface []: " name
			read -p " +Setup management vlan 4093 on $iface? [no|yes]: " mgmt
			read -p " +IPv4 address/mask of interface $iface [dhcp|x.x.x.x/x]: " ip4
			read -p " +IPv6 address/mask of interface $iface [auto|x:x:x::x/x]: " ip6
			if [ X"$mgmt" = X"yes" -o X"$mgmt" = X"y" ]; then
				cfexec sh -c "echo $iface >/etc/mylan"
			fi
			ifconfig $iface description "$name" up
			if [ -n "$ip4" ]; then
				if [ X"$ip4" != X"dhcp" ]; then
					ifconfig $iface inet alias $ip4
				else
					dhclient $iface
				fi
			fi
			if [ -n "$ip6" ]; then
				ifconfig $iface inet6 auto_linklocal -ifdisabled
				if [ X"$ip6" != X"auto" ]; then
					ifconfig $iface inet6 -accept_rtadv
					ifconfig $iface inet6 alias $ip6
				else
					ifconfig $iface inet6 accept_rtadv
				fi
			fi
			;;
		2)
			passwd root
			;;
		3)
			echo
			read -p "New system webGUI password: " pass
			read -p "Confirm system webGUI password: " confirm
			if [ X"$pass" = X"$confirm" ]; then
				cfexec xmler -s /elwix/system/password /elwix/etc/config.xml \
					$(md5 -qs "$pass")
			else
				echo "Error:: passwords are different ..."
			fi
			;;
		4)
			echo
			echo "Restore factory defaults ..."
			read -p " +Are you sure for restore and clear all changes? [no|yes]: " ans
			if [ X"$ans" = X"yes" -o X"$ans" = X"y" ]; then
				cfexec rm -rf /elwix/etc/rc.S /elwix/etc/rc.s /elwix/etc/rc.t
				cfexec tar -xzpf /elwix/altroot/backup/.var.tgz -C /elwix/altroot
				cfexec tar -xzpf /elwix/altroot/backup/.etc.tgz -C /elwix
			fi
			;;
		5)
			reboot
			;;
		6)
			read -p " +Address: " host
			read -p " +Number packets [4]: " cx
			ping -n -c ${cx:-4} ${host:-localhost}
			;;
		7)
			read -p " +Address: " host
			read -p " +Port [22]: " port
			read -p " +User [$USER]: " user
			ssh -p ${port:-22} -l ${user:-$USER} ${host:-localhost}
			;;
		8)
			exec $SHELL
			;;
		9)
			echo "Saving configz to NAND ... "
			/etc/rc.cfg save /etc
			;;
	esac
}

### main()

while : ; do
	if [ -r /etc/disablemenu ]; then
		echo
		echo
		echo "*** Console menu disabled. ***"
		echo

		stty -echo
		read tmp
		stty echo
		if [ X"${tmp}" = X"${MAGIC_MENU}" ]; then
			echo
			echo "> OK, temporary unhide menu ..."
			echo

			menu
		fi
	else
		menu
	fi
done

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