#!/bin/bash

#look at /proc/cmdline and do things as necessary

#we also need to set these vars so subsequent startup scripts use the new values

#if [ -z "$(groovix-get-parameter GX_ID)" ] ; then

# set GX_ID each boot up, in case hard drive moved to another machine, etc.
#  GX_LABEL will stay the same in that case but we want GX_ID to change
GX_ID=$(groovix-determine-id)
bashconfset.pl GX_ID $GX_ID /etc/groovix/groovix.conf

#fi

GXWIFITYPE=

#OSVERSION is usually going to be hard coded and not set on the command line

GXOSVERSION=`cat /proc/cmdline  | perl -ni -e 'if (/gxosversion=(\S+)/) { print $1; }'`
if [ -n "$GXOSVERSION" ] ; then
	bashconfset.pl GX_OSVERSION $GXOSVERSION /etc/groovix/groovix.conf
fi

GXVERSION=`cat /proc/cmdline  | perl -ni -e 'if (/gxversion=(\S+)/) { print $1; }'`
if [ -n "$GXVERSION" ] ; then
	bashconfset.pl GX_VERSION $GXVERSION /etc/groovix/groovix.conf
fi

GXSITE=`cat /proc/cmdline  | perl -ni -e 'if (/gxsite=(\S+)/) { print $1; }'`
if [ -n "$GXSITE" ] ; then
	bashconfset.pl GX_SITE $GXSITE /etc/groovix/groovix.conf
fi

GXLABEL=`cat /proc/cmdline  | perl -ni -e 'if (/gxlabel=(\S+)/) { print $1; }'`
if [ -n "$GXLABEL" ] ; then
	bashconfset.pl GX_LABEL $GXLABEL /etc/groovix/groovix.conf
fi

#static ip
IP_PARAM=$(grep -o 'ip=[^ ]*' /proc/cmdline | cut -d= -f2)
IFS=':' read -r IP_ADDR SERVER_IP GATEWAY NETMASK HOSTNAME IFACE AUTOCONF <<< "$IP_PARAM"
if [ -n "$IFACE" ] ; then
	cp /etc/network/interfaces /etc/network/interfaces.backup
echo "#written by groovix using static ip= kernel parameter

auto lo
iface lo inet loopback

auto $IFACE
iface $IFACE inet static
    address $IP_ADDR
    netmask $NETMASK
    gateway $GATEWAY
" > /etc/network/interfaces
fi


#wifi
GX_WIFI_PSK=`cat /proc/cmdline  | perl -ni -e 'if (/gx-wifi-psk=(\S+)/) { print $1; }'`
if [ -n "$GX_WIFI_PSK" ] ; then
        bashconfset.pl GX_WIFI_PSK $GX_WIFI_PSK /etc/groovix/groovix.conf
fi
GX_WIFI_SSID=`cat /proc/cmdline  | perl -ni -e 'if (/gx-wifi-ssid=(\S+)/) { print $1; }'`
if [ -n "$GX_WIFI_SSID" ] ; then
        bashconfset.pl GX_WIFI_SSID $GX_WIFI_SSID /etc/groovix/groovix.conf
	MYTYPES=`groovix-get-parameter GX_TYPES `
	MYTYPES="$MYTYPES gx-wifi"
	bashconfset GX_TYPES "$MYTYPES" /etc/groovix/groovix.conf
fi
GX_WIFI_STATIC_ADDRESS=`cat /proc/cmdline  | perl -ni -e 'if (/gx-wifi-static-address=(\S+)/) { print $1; }'`
if [ -n "$GX_WIFI_STATIC_ADDRESS" ] ; then
        bashconfset.pl GX_WIFI_STATIC_ADDRESS $GX_WIFI_STATIC_ADDRESS /etc/groovix/groovix.conf
fi
GX_WIFI_GATEWAY=`cat /proc/cmdline  | perl -ni -e 'if (/gx-wifi-gateway=(\S+)/) { print $1; }'`
if [ -n "$GX_WIFI_GATEWAY" ] ; then
        bashconfset.pl GX_WIFI_GATEWAY $GX_WIFI_GATEWAY /etc/groovix/groovix.conf
fi


#set types
egrep "gxtype=\S" /proc/cmdline 2>/dev/null
if [ $? -eq 0 ] ; then
	MYTYPES=`groovix-get-parameter GX_TYPES `
	bashconfset.pl GX_TYPES "$(cat /proc/cmdline | perl -ni -e '@m = (/gxtype=(\S+)/g ); print "$_ " for @m' ) $MYTYPES" /etc/groovix/groovix.conf
fi


