#!/bin/sh
#
# Copyright 2006-2016 Hunan Kylin, Inc.  All Rights Reserved.
# 
# NOTICE: ALL INFORMATION CONTAINED HEREIN IS, AND REMAINS THE PROPERTY OF
# HUNAN KYLIN, INC. AND ITS SUPPLIERS, IF ANY. THE INTELLECTUAL AND
# TECHNICAL CONCEPTS CONTAINED HEREIN ARE PROPRIETARY TO HUNAN KYLIN, INC.
# AND ITS SUPPLIERS AND MAY BE COVERED BY U.S. AND FOREIGN PATENTS, PATENTS IN
# PROCESS, AND ARE PROTECTED BY TRADE SECRET OR COPYRIGHT LAW. DISSEMINATION
# OF THIS INFORMATION OR REPRODUCTION OF THIS MATERIAL IS STRICTLY FORBIDDEN
# UNLESS PRIOR WRITTEN PERMISSION IS OBTAINED FROM HUNAN KYLIN, INC.

usage()
{
	cat <<EOT 

ksvd-move-gold [--dry-run] --from <dir> --to <dir>

Example:
   ksvd-move-gold --from /var/log/ksvd/cacheio --to /var/log/ksvd/cacheio/org-0/gold
	
EOT
}

warn()
{
	echo "${ansi_black_on_yellow}$@" "[m"
}

error()
{
	echo "${ansi_black_on_yellow}$@" "[m"
}

fatal()
{
	error "$@"
	exit 85
}

init_colors()
{
	ansi_black_on_yellow="[30;43m"
	ansi_purple="[01;35m"

	ansi_on="$ansi_purple"
	ansi_off="[m"
}

move_gold()
{
	dirs=`find $from -maxdepth 1 -type d`

	n=0
	for dir in $dirs ; do
		if [ -f "$dir/GUEST.IMG" -a \
		     -f "$dir/.session-info" -a \
		     -f "$dir/settings.local" ] ; then
			base=`basename $dir`
			if [ -n "$dry_run" ] ; then
				echo "not moving $dir to $to/$base"
				continue;
			fi

			if ! mv $dir $to/$base ; then
				error "failed to move $dir to $to/$base: errno $?"
			else
				echo "moved $dir to $to/$base"
				n=`expr $n + 1`
			fi
		fi
	done
	[ -z "$dry_run" ] && echo "moved $n gold image/s"
}

# --- main starts here ---

	[ -n "$UNIQB_VERBOSE_SCRIPTS" ] && set -x
	init_colors

	while [ $# -gt 0 ]; do
		case "$1" in 
		--from|-from) shift ; from=$1;;
		--to|-to) shift ; to=$1;;
		--dry-run|-dry_run) dry_run=1;;
		--h*|-h*) usage; exit 0;;
		*)   echo "unknown option $1"; exit 1;;
		esac
		shift
	done

	[ -z "$from" ] && fatal "must specify --from <dir>"
	[ -z "$to" ] && fatal "must specify --to <dir>"

	[ -d "$from" ] || fatal "$from is not a directory"
	[ -d "$to" ] || fatal "$to is not a directory"

	move_gold

	exit 0
