#!/bin/bash
#
# !!! BACKUP YOUR LICQ FOLDER (~/.licq) JUST IN CASE!!!
# 
# This is left in the public domain
# 
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
#

#

BACK_SUFIX="~"

function change_val()
{ 	local back;

	back="$1$BACK_SUFIX"
	vars=$2
	cp "$1" "$back"
	awk  '
		$1 ~ /^('$vars')/ {
			print $1 " = 0"
		} 
		$1 !~ /^('$vars')/ {
			print
		}
	' < "$back" > "$1" 

}


function check()
{	
	if [[  ! -a $1 ]]; then
		echo "$1: not found. exiting."
		exit 1
	fi
}

case $# in
	0) 	echo "Usage: $0 licq-dir"
        	exit 1
esac

for root in $@; do

	echo "changing users from $root/users/\*.uin"
	check "$root/users"
	for i in "$root"/users/*.uin; do
		change_val "$i" "SID|GSID|InvisibleSID|VisibleSID"
	done

	echo "changing $root/owner.uin"
	check "$root/owner.uin"
	change_val "$root/owner.uin" "SSTime|SSCount"

	echo "changing $root/licq.conf"
	check "$root/licq.conf"
	t=`grep NumOfGroups "$root/licq.conf" |
	   cut -d'=' -f2 | 
	   awk '
	   {	for(i=1;i<=$1;i++)
	   	{	if( i == 1)
	   			c = "";
	   		else 
	   			c = "|";
	   		ba = sprintf("%s%sGroup%d.id",ba,c,i);
	   	}
	   	print ba
	   }'`
	change_val "$root"/licq.conf "$t"

done
