Annotation of elwix/config/etc/default/rc.initial, revision 1.2

1.2     ! misho       1: #!/bin/sh
        !             2: #
        !             3: # ELWIX Initial RC Menu script
        !             4: #
        !             5: # $Id: rc.initial,v 1.1.2.6 2013/01/28 01:18:19 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 drive [like: ada1]: " dev
        !           117:                        if [ -n "$dev" -a -x /usr/sbin/diskinfo ]; then
        !           118:                                diskinfo $dev
        !           119:                                if [ $? -eq 0 ]; then
        !           120:                                        read -p " +This is right choice? [no|yes]: " ask
        !           121:                                        if [ X"$ask" = X"yes" -o X"$ask" = X"y" ]; then
        !           122:                                                sysctl -w kern.geom.debugflags=16
        !           123:                                                dd if=/dev/ufs/elwix of=/dev/$dev
        !           124:                                                sysctl -w kern.geom.debugflags=0
        !           125:                                        fi
        !           126:                                fi
        !           127:                        fi
        !           128:                        ;;
        !           129:        esac
        !           130: }
        !           131: 
        !           132: ### main()
        !           133: 
        !           134: while : ; do
        !           135:        if [ -r /etc/disablemenu ]; then
        !           136:                echo
        !           137:                echo
        !           138:                echo "*** Console menu disabled. ***"
        !           139:                echo
        !           140: 
        !           141:                stty -echo
        !           142:                read tmp
        !           143:                stty echo
        !           144:                if [ X"${tmp}" = X"${MAGIC_MENU}" ]; then
        !           145:                        echo
        !           146:                        echo "> OK, temporary unhide menu ..."
        !           147:                        echo
        !           148: 
        !           149:                        menu
        !           150:                fi
        !           151:        else
        !           152:                menu
        !           153:        fi
        !           154: done

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