#!/usr/bin/sh

RESULT=""
GCC="`which gcc`"
BUSYBOX="`which busybox`"

if [ -f /etc/target ]; then
    MACHINE="`cat /etc/target | egrep '^TARGET_TYPE=' | \
        cut -d'=' -f2 | cut -d'-' -f1`"
elif [ -n "$GCC" ]; then
    MACHINE="`$GCC -dumpmachine | cut -d'-' -f1`"
fi

case "$MACHINE" in
    mipsel)
        MACHINE="mips"
        ;;
    mips64*)
        MACHINE="mips64"
        ;;
    powerpc)
        MACHINE="ppc"
        ;;
    powerpc64le)
        MACHINE="ppc64le"
        ;;
esac

if [ -n "$MACHINE" -a "$#" -gt "0" ]; then
    while [ "$#" -gt "0" ]; do
        if [ -z "`printf $1  | egrep '^-[amnrspvoi]+$'`" ]; then
            exec $BUSYBOX uname --help
        fi

        case "$1" in
            *a*)
                INPUT="-snrvmo"
            ;;
            *)
                INPUT="$1"
            ;;
        esac

        for LETTER in s n r v m p o i; do
            case "$INPUT" in
                *$LETTER*)
                    case "$LETTER" in
                        m)
                            RESULT="$RESULT $MACHINE"
                        ;;
                        o)
                            RESULT="$RESULT Bolt/Linux"
                        ;;
                        *)
                            RESULT="$RESULT `$BUSYBOX uname -$LETTER`"
                        ;;
                    esac
                ;;
            esac
        done

        shift
    done

    echo $RESULT
else
    exec $BUSYBOX uname $*
fi
