#!/bin/sh
############################################################################
#
# MODULE:	d.mvmon
# AUTHOR(S):	Huidae Cho - grass4u@gmail.com
# PURPOSE:	To move current displayed maps to another monitor
# COPYRIGHT:	(C) 2005 by the GRASS Development Team
#
#		This program is free software under the GNU General Public
#		License (>=v2). Read the file COPYING that comes with GRASS
#		for details.
#
#############################################################################

#%Module
#%  description: Moves displayed maps to another monitor
#%  keywords: display, setup
#%End
#%flag
#% key: c
#% description: clear target monitor before moving
#%end
#%flag
#% key: s
#% description: stay with source monitor
#%end
#%flag
#% key: k
#% description: kill source monitor after moving
#%end
#%option
#% key: to
#% type: string
#% required: yes
#% description: Target monitor
#%end
#%option
#% key: from
#% type: string
#% required: no
#% description: Source monitor
#%end

if [ "$1" != "@ARGS_PARSED@" ]
then
	exec g.parser "$0" "$@"
fi

to=$GIS_OPT_TO

if [ -n "$GIS_OPT_FROM" ]
then
	from=$GIS_OPT_FROM
else
	from=`d.mon -p | sed 's/^.*: *//'`
fi

if [ "$from" = "$to" ]
then
	echo "Target monitor cannot be the same as source monitor" >& 2
	exit 1
fi

if ! d.mon -L | grep "^$from .*  running" > /dev/null 2>&1
then
	echo "$from: No such monitor or not running" >&2
	exit 1
fi

if ! d.mon -l | grep "^$to " > /dev/null 2>&1
then
	echo "$to: No such monitor" >&2
	exit 1
fi

d.mon select=$from
dsave=`d.save -o`
if d.mon -L | grep "^$to .* not running" > /dev/null 2>&1
then
	d.mon start=$to
else
	d.mon select=$to
	if [ $GIS_FLAG_C -eq 1 ]
	then
		d.erase -x
	fi
fi

eval "$dsave"

if [ $GIS_FLAG_S -eq 1 ]
then
	d.mon select=$from
elif [ $GIS_FLAG_K -eq 1 ]
then
	d.mon stop=$from
fi

exit 0
