khanat-opennel-code/code/nel/tools/3d/build_gamedata/processes/zone/sh/export.sh

110 lines
3 KiB
Bash
Raw Normal View History

2010-05-06 00:08:41 +00:00
#!/bin/bash
rm log.log 2> /dev/null
# *** Export zone files (.zone) from Max
exec_timeout='exec_timeout.exe'
# Get the timeout
timeout=`cat ../../cfg/config.cfg | grep "zone_export_timeout" | sed -e 's/zone_export_timeout//' | sed -e 's/ //g' | sed -e 's/=//g'`
# Get the database directory
database_directory=`cat ../../cfg/site.cfg | grep "database_directory" | sed -e 's/database_directory//g' | sed -e 's/ //g' | sed -e 's/=//g'`
# Get the build gamedata directory
build_gamedata_directory=`cat ../../cfg/site.cfg | grep "build_gamedata_directory" | sed -e 's/build_gamedata_directory//' | sed -e 's/ //g' | sed -e 's/=//g'`
# Get the zone directories
zone_source_directories=`cat ../../cfg/directories.cfg | grep "zone_source_directory" | sed -e 's/zone_source_directory//' | sed -e 's/ //g' | sed -e 's/=//g'`
# Get the ligo value
ligo_flag=`cat ../../cfg/config.cfg | grep "process_to_complete" | grep "ligo"`
# Maxdir
max_directory=`echo $MAX_DIR | sed -e 's&\\\&/&g'`
if ( test "$ligo_flag" )
then
echo [Ligo] ON
echo [Ligo] ON >> log.log
else
echo [Ligo] OFF
echo [Ligo] OFF >> log.log
fi
# Log error
echo ------- > log.log
echo --- Export zone >> log.log
echo ------- >> log.log
echo -------
echo --- Export zone
echo -------
date >> log.log
date
# Try to export from Max zone if any
for i in $zone_source_directories ; do
# Copy the script
cat maxscript/zone_export.ms | sed -e "s&output_logfile&$build_gamedata_directory/processes/zone/log.log&g" | sed -e "s&zone_source_directory&$database_directory/$i&g" | sed -e "s&output_directory&$build_gamedata_directory/processes/zone/zone_exported&g" > $max_directory/scripts/zone_export.ms
# Start max
echo Try 1 >> log.log
$exec_timeout $timeout $max_directory/3dsmax.exe -U MAXScript zone_export.ms -q -mi -vn
echo Try 2 >> log.log
$exec_timeout $timeout $max_directory/3dsmax.exe -U MAXScript zone_export.ms -q -mi -vn
echo Try 3 >> log.log
$exec_timeout $timeout $max_directory/3dsmax.exe -U MAXScript zone_export.ms -q -mi -vn
# Idle
../../idle.bat
done
# ****************************
# Try to copy ligo zone if any
# ****************************
dir_current=`pwd`
cd ../ligo/output
list_zone=`ls -1 *.[zZ][oO][nN][eE]`
for filename in $list_zone ; do
echo "Checking $filename for update"
if test -e ../../zone/zone_exported/$filename ; then
must_update=`diff --binary -q $filename ../../zone/zone_exported/$filename` ;
else
must_update=YES ;
fi
if test -n "$must_update" ; then
echo " Updating"
cp -u -p $filename ../../zone/zone_exported/$filename ;
fi
# Idle
../../../idle.bat
done
cd $dir_current
# delete files only present in the zone_exported directory
if ( test "$ligo_flag" )
then
cd ./zone_exported
list_zone=`ls -1 *.[zZ][oO][nN][eE]`
for filename in $list_zone ; do
if test -e ../../ligo/output/$filename ; then
must_update=NO ;
else
echo "Removing $filename"
rm $filename ;
fi
# Idle
../../../idle.bat
done
cd ..
fi