--- elwix/config/etc/uboot/rc.initial 2014/01/21 09:19:06 1.1 +++ elwix/config/etc/uboot/rc.initial 2014/09/15 19:06:47 1.2 @@ -0,0 +1,141 @@ +#!/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 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