#!/usr/bin/perl

##########################################################################
# Athenapf[^obNAbvc[
#
# @Athenåef[^t@C*.txtobNAbvc[
#
#-------------------------------------------------------------------------
# ݒ@
# @s鎞̃JgtH_̃f[^ւ̃pXAt@C̃Xg
# @ݒ肵܂BobNAbṽtH_͎쐬Ȃ̂ŁA
# @ō쐬ĂKv܂B
# @tH_̍Ṓu/v͏ȗł܂B
#
# @tH_͈łwł܂B၄./backup ../save/ ./backup_data/
# @tH_̍Ṓu/v͏ȗł܂B
#
# @sƃobNAbṽtH_ցAt@CɌ݂̓tƎ
# @ăt@CRs[܂B
#
#   * tooltH_backup_datatH_쐬A
# @  athena.sh̒Ɂu./tool/backup ./save/ ./tool/backup_data/v
#     ƂsǉƁAathenaN邽тɃobNAbv܂
#
#   Ƃ͈Ɂu-r tƎvw肵܂B
# @܂̌ɃtH_w肷邱Ƃo܂
# @P ./backup -r 200309191607
# @Q ./backup -r 200309191607 ../save ./backup_data/
# @̗ł2003/09/1916:07ɃobNAbvf[^𕜌Ă܂
#
# @ƂAAthenafBNgɂf[^ *.bak ɖOύX
# @cĂ̂ŁAȂꍇ rm *.bak ȂǂŏĂB
#
##########################################################################

$sdir="../../save/";		#obNAbv(AthenãfBNg/save/)
$tdir="./backup_data/";		#obNAbv

@files=(			#t@C̃Xg
	"account","athena","storage","party","guild","castle","pet"
);


#-------------------------------ݒ肱܂-----------------------------











if($ARGV[0]=~/^\-r$/i || $ARGV[0]=~/\-\-(recover|restore)/i){
	#

	$file=$ARGV[1];
	$sdir=$ARGV[2]||$sdir;
	$tdir=$ARGV[3]||$tdir;
	&restorecopy($_) foreach @files;
	exit(0);
}

#obNAbv
$sdir=$ARGV[0]||$sdir;
$tdir=$ARGV[1]||$tdir;

unless( -d $tdir ){
	print "$0: \"$tdir\" : No such directory\n";
	exit(1);
}

(undef,$min,$hour,$day,$month,$year)=localtime;

$file=sprintf("%04d%02d%02d%02d%02d",
	$year+1900, $month+1, $day, $hour, $min );

&backupcopy($_) foreach @files;
exit(0);

sub backupcopy {
	my($name)= @_;
	system("cp $sdir$name.txt $tdir$name$file.txt");
}

sub restorecopy {
	my($name)= @_;
	unless( -f "$sdir$name.txt" ){
		printf("$0: \"$sdir$name.txt\" not found!\n");
		return 0;
	}
	unless( -f "$tdir$name$file.txt" ){
		printf("$0: \"$tdir$name$file.txt\" not found!\n");
		return 0;
	}
	rename "$sdir$name.txt","$sdir$name.bak";
	system("cp $tdir$name$file.txt $sdir$name.txt");
}
