#!/bin/sh

#
# factory set -sn 22018C010005 -date 20200526 -mac 00:19:55:02:67:32 -hwver 3.0.0.1 -product WooLink2102-W-4G
# Set SN to 22018C010005
# set MAC to 00:19:55:02:67:32
# set DATE to 20200526
# set HWVER to 3.0.0.1
# set PRODUCT to WooLink2102-W-4G
# 
# factory get
# PRODUCT:	   WooLink2102-W-4G
# SN:		   22018C010005
# DATE:		   20200526
# HWVER:	   3.0.0.1
# MAC:		   00:19:55:02:67:32
#

export PATH=/opt/lnxall_app/bin:/opt/lnxall_app/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/bin:/sbin

help() {
	cat <<_HELP_
Setup hardware information.
Usage: $0 {set|get} [-sn SN] [-date DATE ] [-mac MAC ] [-hwver HWVER ] [-product PRODUCT]
		-sn SN # board SN
		-date DATE # manufactory date
		-mac MAC # base MAC addr
		-hwver HWVER # hardware version
		-product PRODUCT # product name
Example:
	$0 set -sn 22018C010005 -date 20200526 -mac 00:19:55:02:67:32 -hwver 3.0.0.1 -product WooLink2102-W-4G
	$0 get 
_HELP_
}

G_ACTION=
G_SN=
G_DATE=
G_MAC=
G_HWVER=
G_PRODUCT=

case "$1" in
	set) G_ACTION="$1" ;;
	get) G_ACTION="$1" ;;
	*) help ; exit 1 ;;
esac
shift 1

while [ -n "$1" ]; do
	case "$1" in
		-sn) G_SN="$2" ; shift 2 ;;
		-date) G_DATE="$2" ; shift 2 ;;
		-mac) G_MAC="$2" ; shift 2 ;;
		-hwver) G_HWVER="$2" ; shift 2 ;;
		-product) G_PRODUCT="$2" ; shift 2 ;;
		--) shift ; break ;;
		-*) help ; exit 1 ;;
		*) break ;;
	esac
done

set_sn() {
	echo "Set SN to $1"
	set_facini SN "$1"
}

set_mac() {
	echo "set MAC to $1"
	set_facini mac "$1"
}

set_date() {
	echo "set DATE to $1"
	set_facini DATE "$1"
}

set_hwver() {
	echo "set HWVER to $1"
	set_facini HWVER "$1"
}

set_product() {
	echo "set PRODUCT to $1"
	set_facini PRODUCT "$1"
}

mainfunc() {
	if [ "${G_ACTION}" = "set" ] ; then
		[ -n "${G_SN}" ] && set_sn "${G_SN}"
		[ -n "${G_MAC}" ] && set_mac "${G_MAC}"
		[ -n "${G_DATE}" ] && set_date "${G_DATE}"
		[ -n "${G_HWVER}" ] && set_hwver "${G_HWVER}"
		[ -n "${G_PRODUCT}" ] && set_product "${G_PRODUCT}"
		sync ; reboot -n 2
	elif [ "${G_ACTION}" = "get" ];then
		local product="$(get_facini -n PRODUCT)"
		local sn="$(get_facini -n SN)"
		local date="$(get_facini -n DATE)"
		local hwver="$(get_facini -n HWVER)"
		local mac="$(get_facini -n mac)"

		echo "PRODUCT=$product"
		echo "SN=$sn"
		echo "DATE=$date"
		echo "HWVER=$hwver"
		echo "MAC=$mac"
	else
		help
		exit 1
	fi
}

mainfunc
