adding patch to analyze crash on callNativeCallBack

This commit is contained in:
Jean Sorgemoel 2018-04-30 20:34:08 +02:00
parent e6b4928491
commit f1cf31924e
9 changed files with 153 additions and 61 deletions

View file

@ -40,6 +40,8 @@ RUN mkdir -p /opt/src/cpptest
RUN wget -q https://github.com/cpptest/cpptest/archive/1.0.5.tar.gz -O /opt/src/cpptest.tar.gz || exit 2
RUN tar xf /opt/src/cpptest.tar.gz -C /opt/src --strip 1 || exit 2
RUN cd /opt/src/cpptest && ./autogen.sh && ./configure && make && make install || exit 2
# Build debug & install (cpptestd)
RUN cd /opt/src/cpptest && make clean && CXXFLAGS="-g -O0" ./configure && make && for file in src/.libs/lib*.so* src/.libs/lib*.a;do extension=${file##*/libcpptest} ; cp -L $file /usr/local/lib/libcpptestd${extension}; done
## Build & Install squish
RUN mkdir -p /opt/src
@ -94,3 +96,5 @@ RUN cd /opt/src/libvorbis/; make install
# Create directory
RUN mkdir -p /opt/ref ; chmod 777 /opt/ref
RUN ldconfig

View file

@ -19,6 +19,7 @@
declare DIRBUILD="/opt/build/"
declare DIRCODE="/opt/ref/opennel-code"
declare CXXFLAGS=""
function usage()
{
@ -33,19 +34,48 @@ options:
-d, --debug : Show debug message
--add-opts-cmake="string" : add option use on command cmake (generate Makefile)
--add-opts-make="string" : add option use on command make
--cxxflags=[String] : adding cxx flags when generate Makefile (and build)
EOF
}
function chrashed()
{
echo "$(date "+%Y/%m/%d %H:%M:%S") ERROR - BUILD FAILED (code:$?)" >> $LOGFILE
echo "$(date "+%Y/%m/%d %H:%M:%S") ERROR - BUILD FAILED (code:$?)"
if [ -n "$LOGFILE" ]
then
echo "$(date "+%Y/%m/%d %H:%M:%S") ERROR - BUILD FAILED (code:$?)" >> $LOGFILE
fi
exit 2
}
function msg_error()
{
echo "$(date "+%Y/%m/%d %H:%M:%S") ERROR - $1"
if [ -n "$LOGFILE" ]
then
echo "$(date "+%Y/%m/%d %H:%M:%S") ERROR - $1" >> $LOGFILE
fi
}
function msg_info()
{
echo "$(date "+%Y/%m/%d %H:%M:%S") INFO - $1"
echo "$(date "+%Y/%m/%d %H:%M:%S") INFO - $1" >> $LOGFILE
if [ -n "$LOGFILE" ]
then
echo "$(date "+%Y/%m/%d %H:%M:%S") INFO - $1" >> $LOGFILE
fi
}
function msg_debug()
{
if [[ $DEBUG -ne 0 ]]
then
echo "$(date "+%Y/%m/%d %H:%M:%S") DEBUG - $1"
if [ -n "$LOGFILE" ]
then
echo "$(date "+%Y/%m/%d %H:%M:%S") DEBUG - $1" >> $LOGFILE
fi
fi
}
#
@ -81,31 +111,43 @@ do
DIRCODE="${1#*=}"
shift
;;
--cxxflags=*)
CXXFLAGS="$CXXFLAGS ${1#*=}"
shift
;;
*)
msg_error "options '$1' not recognize"
usage
exit 1
exit 2
;;
esac
done
declare LOGFILE="${DIRBUILD}/build.log"
msg_debug "DIRBUILD:$DIRBUILD"
msg_debug "DIRCODE:$DIRCODE"
msg_debug "CMAKEOPTS:$CMAKEOPTS"
msg_debug "MAKEOPTS:$MAKEOPTS"
msg_debug "LOGFILE:$LOGFILE"
msg_debug "CXXFLAGS:$CXXFLAGS"
msg_info "CREATE BUILD DIRECTORY"
mkdir -p ${DIRBUILD}/ || exit 2
msg_info "COPY CODE"
mkdir -p ${DIRBUILD}/opennel-code
cp -r $DIRCODE/* ${DIRBUILD}/opennel-code
cp -pr $DIRCODE/* ${DIRBUILD}/opennel-code
msg_info "PATCH CODE"
cd ${DIRBUILD}/opennel-code/code
patch -t -i ${DIRBUILD}/opennel-code/patch/libcrypto.patch || exit 2
patch -t -i ${DIRBUILD}/opennel-code/patch/libicuuc.patch || exit 2
patch -Z -t -i ${DIRBUILD}/opennel-code/patch/libcrypto.patch || exit 2
patch -Z -t -i ${DIRBUILD}/opennel-code/patch/libicuuc.patch || exit 2
patch -Z -t -i ${DIRBUILD}/opennel-code/patch/01_ryzom_debug_callNativeCallBack.patch -p 1 || exit 2
msg_info "PREPARE BUILD"
cd ${DIRBUILD}; cmake -DWITH_NEL=ON \
msg_debug "cmake option : -DWITH_NEL=ON -DWITH_STATIC=ON -DWITH_STATIC_DRIVERS=ON -DWITH_STATIC_EXTERNAL=ON -DWITH_SYMBOLS=ON -DWITH_LUA52=ON -DWITH_RYZOM_PATCH=ON -DWITH_RYZOM_CUSTOM_PATCH_SERVER=ON ${CMAKEOPTS}"
cd ${DIRBUILD}; CXXFLAGS="$CXXFLAGS" cmake -DWITH_NEL=ON \
-DWITH_STATIC=ON \
-DWITH_STATIC_DRIVERS=ON \
-DWITH_STATIC_EXTERNAL=ON \
@ -117,7 +159,8 @@ cd ${DIRBUILD}; cmake -DWITH_NEL=ON \
${DIRBUILD}/opennel-code/code 1>>$LOGFILE 2>&1 || exit 2
msg_info "BUILD START"
cd ${DIRBUILD}; make $MAKEOPTS 1>>$LOGFILE 2>&1 || exit 2
msg_debug "make option : $MAKEOPTS"
cd ${DIRBUILD}; VERBOSE=1 make $MAKEOPTS 1>>$LOGFILE 2>&1 || exit 2
msg_info "GENERATE PACKAGE"
cd ${DIRBUILD}; make package 1>>$LOGFILE 2>&1 || exit 2

View file

@ -22,7 +22,7 @@ declare -i REMOVE=0
declare -i IMAGE=0
declare -i BUILD=1
declare -i DEBUG=0
declare JOBS=""
declare MAKEOPTS=""
declare CMAKEOPTS=""
declare DOCKEROPTS=""
declare DIRBUILD=""
@ -30,6 +30,7 @@ declare CLEANDOCKER=0
declare -i CLEANIMAGENONE=0
declare -i AUTODETEC=1
declare DOCKERBUILDOPT=""
declare OPTION=""
declare IMAGEDOCKER="builder_khanat_debian_stretch_x86_64"
declare LOCALBUILDDIR="build/$IMAGEDOCKER"
@ -58,6 +59,8 @@ options:
-f, --force-create-image : force to create docker image (use to build khanat) - default autodetec.
-j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no arg.
-a OPTS, --add-opts-cmake=OPTS : Adding options on cmake command (before build)
-n OPTS, --add-opts-make=OPTS : Adding options on make command (build option)
--cxxflags=[String] : adding cxx flags when generate Makefile (and build)
-c, --clean-container : remove all container in state Exited
-w, --clean-images-none : Remove images docker (with name 'none')
-m OPTS, --add-opts-docker=OPTS : Adding options on docker command (when build)
@ -108,6 +111,7 @@ do
;;
-d|--debug)
DEBUG=1
OPTION="$OPTION -d"
shift
;;
-c|--clean-container)
@ -128,18 +132,18 @@ do
# search next argument is value or new argument
if [[ ${1:0:1} == "-" ]]
then
JOBS="-j"
MAKEOPTS="$MAKEOPTS -j"
else
JOBS="-j $1"
MAKEOPTS="$MAKEOPTS -j $1"
shift
fi
;;
--jobs*)
if [[ ${1#*=} == "" ]]
then
JOBS="-j"
MAKEOPTS="$MAKEOPTS -j"
else
JOBS="-j ${1#*=}"
MAKEOPTS="$MAKEOPTS -j ${1#*=}"
fi
shift
;;
@ -152,6 +156,15 @@ do
CMAKEOPTS="$CMAKEOPTS ${1#*=}"
shift
;;
-n)
shift
MAKEOPTS="$MAKEOPTS $1"
shift
;;
--add-opts-make=*)
MAKEOPTS="$MAKEOPTS ${1#*=}"
shift
;;
-m)
shift
DOCKEROPTS="$DOCKEROPTS $1"
@ -161,6 +174,10 @@ do
DOCKEROPTS="$DOCKEROPTS ${1#*=}"
shift
;;
--cxxflags=*)
OPTION="$OPTION --cxxflags=${1#*=}"
shift
;;
--only-build-server)
CMAKEOPTS="$CMAKEOPTS -DWITH_NEL_TESTS=OFF -DWITH_RYZOM_CLIENT=OFF -DWITH_DRIVER_OPENGL=OFF -DWITH_DRIVER_OPENAL=OFF -DWITH_NEL_SAMPLES=OFF -DWITH_SOUND=OFF"
shift
@ -211,11 +228,11 @@ DIRBUILD="${rootdir}/${LOCALBUILDDIR}"
msg_debug "[$(basename $0):$LINENO] calldir: $calldir"
msg_debug "[$(basename $0):$LINENO] basedir: $basedir"
msg_debug "[$(basename $0):$LINENO] rootdir: $rootdir"
msg_debug "[$(basename $0):$LINENO] JOBS: '$JOBS'"
msg_debug "[$(basename $0):$LINENO] CMAKEOPTS: '$CMAKEOPTS'"
msg_debug "[$(basename $0):$LINENO] DOCKEROPTS: '$DOCKEROPTS'"
msg_debug "[$(basename $0):$LINENO] DOCKERBUILDOPT: '$DOCKERBUILDOPT'"
msg_debug "[$(basename $0):$LINENO] codedir: '$codedir'"
msg_debug "[$(basename $0):$LINENO] OPTION: '$OPTION'"
msg_info "[$(basename $0):$LINENO] check khanat-opennel-code"
if [[ ! -d ${codedir} ]]
@ -242,7 +259,7 @@ touch ${DIRBUILD}/build.log
cat << EOF > ${DIRBUILD}/envi.sh
#!/bin/bash
export MAKEOPTS="$JOBS"
export MAKEOPTS="$MAKEOPTS"
export CMAKEOPTS="$CMAKEOPTS"
EOF
@ -257,6 +274,16 @@ fi
if [[ $BUILD -ne 0 ]]
then
msg_info "BUILD"
msg_debug "cd $rootdir; docker run -it \
--hostname=builder \
-u "$(id -u $USERNAME):$(id -g $USERNAME)" \
-v $rootdir/builder:/opt/ref/builder:ro \
-v $codedir:/opt/ref/opennel-code:ro \
-v $rootdir/build:/opt/build \
-v /etc/localtime:/etc/localtime:ro \
${DOCKEROPTS} \
${IMAGEDOCKER} \
/opt/ref/builder/${LOCALSRC}/build-under-docker.sh --add-opts-make=\"$MAKEOPTS\" --add-opts-cmake=\"$CMAKEOPTS\" --build-dir=\"/opt/${LOCALBUILDDIR}\" --code-dir=\"/opt/ref/opennel-code\" $OPTION"
cd $rootdir; docker run -it \
--hostname=builder \
-u "$(id -u $USERNAME):$(id -g $USERNAME)" \
@ -266,7 +293,7 @@ then
-v /etc/localtime:/etc/localtime:ro \
${DOCKEROPTS} \
${IMAGEDOCKER} \
/opt/ref/builder/${LOCALSRC}/build-under-docker.sh --add-opts-make="$JOBS" --add-opts-cmake="$CMAKEOPTS" --build-dir="/opt/${LOCALBUILDDIR}" --code-dir="/opt/ref/opennel-code" || exit 2
/opt/ref/builder/${LOCALSRC}/build-under-docker.sh --add-opts-make="$MAKEOPTS" --add-opts-cmake="$CMAKEOPTS" --build-dir="/opt/${LOCALBUILDDIR}" --code-dir="/opt/ref/opennel-code" $OPTION || exit 2
fi
if [[ $BUILD -ne 0 ]]
@ -279,7 +306,7 @@ then
$codedir/code/ryzom/client/* \
$codedir/code/ryzom/server/* \
$codedir/code/web/* || exit 2
cp ${rootdir}/${LOCALBUILDDIR}/ryzomcore-0.12.0..tar.gz ${PACKAGEBIN} || exit 2
cp ${rootdir}/${LOCALBUILDDIR}/ryzomcore-*.tar.gz ${PACKAGEBIN} || exit 2
fi
if [[ $CLEANDOCKER -ne 0 ]]

View file

@ -77,11 +77,11 @@ source /home/gameserver/.bashrc
msg_debug "create directory target"
create_dir_gameserver "$KHANAT_PATH" || exit 2
create_dir_gameserver "$KHANAT_PATH/server" || exit 2
create_dir_gameserver "$KHANAT_PATH/server/collisions" || exit 2
#create_dir_gameserver "$KHANAT_PATH/server/collisions" || exit 2
create_dir_gameserver "$KHANAT_PATH/server/leveldesign" || exit 2
create_dir_gameserver "$KHANAT_PATH/server/primitives" || exit 2
#create_dir_gameserver "$KHANAT_PATH/server/primitives" || exit 2
create_dir_gameserver "$KHANAT_PATH/server/translation" || exit 2
create_dir_gameserver "$KHANAT_PATH/server/continents" || exit 2
#create_dir_gameserver "$KHANAT_PATH/server/continents" || exit 2
create_dir_gameserver "$KHANAT_PATH/server/common" || exit 2
create_dir_gameserver "$KHANAT_PATH/server/data_shard" || exit 2
create_dir_gameserver "$KHANAT_PATH/server/sound" || exit 2
@ -140,11 +140,11 @@ create_recursive_link '/home/gameserver/ext/khanat-ressources/leveldesign' "$KHA
#create_recursive_link '/home/gameserver/ext/khanat-ressources/primitives' "$KHANAT_PATH/server/primitives" || exit 2
create_recursive_link '/home/gameserver/ext/khanat-ressources/translation' "$KHANAT_PATH/server/translation" || exit 2
#create_recursive_link '/home/gameserver/ext/khanat-ressources/continents' "$KHANAT_PATH/server/continents" || exit 2
create_link '/home/gameserver/ext/khanat-ressources/collisions' "$KHANAT_PATH/server/collisions" || exit 2
create_link '/home/gameserver/ext/khanat-ressources/collisions' "$KHANAT_PATH/server" || exit 2
#create_link '/home/gameserver/ext/khanat-ressources/leveldesign' "$KHANAT_PATH/server/leveldesign" || exit 2
create_link '/home/gameserver/ext/khanat-ressources/primitives' "$KHANAT_PATH/server/primitives" || exit 2
create_link '/home/gameserver/ext/khanat-ressources/primitives' "$KHANAT_PATH/server" || exit 2
#create_link '/home/gameserver/ext/khanat-ressources/translation' "$KHANAT_PATH/server/translation" || exit 2
create_link '/home/gameserver/ext/khanat-ressources/continents' "$KHANAT_PATH/server/continents" || exit 2
create_link '/home/gameserver/ext/khanat-ressources/continents' "$KHANAT_PATH/server" || exit 2
create_recursive_link '/home/gameserver/ext/khanat-ressources/common' "$KHANAT_PATH/server/common" || exit 2
#create_link_2nd_level "/home/gameserver/ext/khanat-ressources/common/*" "$KHANAT_PATH/server/common/" || exit 2

View file

@ -233,7 +233,7 @@ httpcode=$(curl -L -w "%{http_code}" 'http://localhost:40916/ams/index.php' \
-H 'Upgrade-Insecure-Requests: 1' \
-H 'User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:6.0) Gecko/20100101 Firefox/6.0' \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data 'Username='"$accountuser"'&Password='"$passworduser"'&ConfirmPass=tester&Email=tester%40khaganat.net&TaC=on&function=add_user' \
--data 'Username='"$accountuser"'&Password='"$passworduser"'&ConfirmPass='"$passworduser"'&Email=tester%40khaganat.net&TaC=on&function=add_user' \
-o $KHANAT_HOME/log/configure/world_account_tester.log || msg_critical "[$(basename $0):$LINENO] curl - Create one user")
if [[ $httpcode != "200" ]]

View file

@ -110,43 +110,43 @@ status_all()
function create_default_file_for_screen()
{
# on scrren mode, we launch with root right
# on screen mode, we launch with root right
# But file are created on root, so , to solve that, we generate directory and file before
create_dir_gameserver '/home/gameserver/khanat/server/bms_master'
create_dir_gameserver '/home/gameserver/khanat/server/rws'
create_dir_gameserver '/home/gameserver/khanat/server/save_shard/characters_offline_commands'
create_dir_gameserver '/home/gameserver/khanat/server/save_shard/characters'
create_dir_gameserver '/home/gameserver/khanat/server/save_shard/characters/002'
create_dir_gameserver '/home/gameserver/khanat/server/save_shard/ai_script_data'
create_dir_gameserver '/home/gameserver/khanat/server/save_shard/sale_store'
create_dir_gameserver '/home/gameserver/khanat/server/save_shard/www'
create_dir_gameserver '/home/gameserver/khanat/server/save_shard/www/302'
create_dir_gameserver '/home/gameserver/khanat/server/save_shard/www/302/ke'
create_dir_gameserver '/home/gameserver/khanat/server/save_shard/www/302/ke/kem'
create_dir_gameserver '/home/gameserver/khanat/server/save_shard/totems'
create_dir_gameserver '/home/gameserver/khanat/server/save_shard/logs'
create_dir_gameserver '/home/gameserver/khanat/server/save_shard/sdb'
create_dir_gameserver '/home/gameserver/khanat/server/pds'
create_dir_gameserver '/home/gameserver/khanat/server/pds/00000000'
create_dir_gameserver '/home/gameserver/khanat/server/pds/00000000/logs'
create_dir_gameserver '/home/gameserver/khanat/server/gpms'
create_dir_gameserver '/home/gameserver/khanat/server/aes'
create_dir_gameserver '/home/gameserver/khanat/server/lgs'
create_dir_gameserver '/home/gameserver/khanat/server/data_shard/primitive_cache'
create_dir_gameserver '/home/gameserver/khanat/server/su'
create_dir_gameserver '/home/gameserver/khanat/server/ms'
create_dir_gameserver '/home/gameserver/khanat/server/egs'
create_dir_gameserver '/home/gameserver/khanat/server/data_shard_local'
create_dir_gameserver '/home/gameserver/khanat/server/data_shard_local/statistics'
create_dir_gameserver '/home/gameserver/khanat/server/fes'
create_dir_gameserver '/home/gameserver/khanat/server/mfs'
create_dir_gameserver '/home/gameserver/khanat/server/ras'
create_dir_gameserver '/home/gameserver/khanat/server/ios'
create_dir_gameserver '/home/gameserver/khanat/server/sbs'
create_dir_gameserver '/home/gameserver/khanat/server/ais_newbyland'
create_dir_gameserver '/home/gameserver/khanat/server/rns'
create_dir_gameserver '/home/gameserver/khanat/server/ts'
create_dir_gameserver '/home/gameserver/khanat/server/bms_master' || exit 2
create_dir_gameserver '/home/gameserver/khanat/server/rws' || exit 2
create_dir_gameserver '/home/gameserver/khanat/server/save_shard/characters_offline_commands' || exit 2
create_dir_gameserver '/home/gameserver/khanat/server/save_shard/characters' || exit 2
create_dir_gameserver '/home/gameserver/khanat/server/save_shard/characters/002' || exit 2
create_dir_gameserver '/home/gameserver/khanat/server/save_shard/ai_script_data' || exit 2
create_dir_gameserver '/home/gameserver/khanat/server/save_shard/sale_store' || exit 2
create_dir_gameserver '/home/gameserver/khanat/server/save_shard/www' || exit 2
create_dir_gameserver '/home/gameserver/khanat/server/save_shard/www/302' || exit 2
create_dir_gameserver '/home/gameserver/khanat/server/save_shard/www/302/ke' || exit 2
create_dir_gameserver '/home/gameserver/khanat/server/save_shard/www/302/ke/kem' || exit 2
create_dir_gameserver '/home/gameserver/khanat/server/save_shard/totems' || exit 2
create_dir_gameserver '/home/gameserver/khanat/server/save_shard/logs' || exit 2
create_dir_gameserver '/home/gameserver/khanat/server/save_shard/sdb' || exit 2
create_dir_gameserver '/home/gameserver/khanat/server/pds' || exit 2
create_dir_gameserver '/home/gameserver/khanat/server/pds/00000000' || exit 2
create_dir_gameserver '/home/gameserver/khanat/server/pds/00000000/logs' || exit 2
create_dir_gameserver '/home/gameserver/khanat/server/gpms' || exit 2
create_dir_gameserver '/home/gameserver/khanat/server/aes' || exit 2
create_dir_gameserver '/home/gameserver/khanat/server/lgs' || exit 2
create_dir_gameserver '/home/gameserver/khanat/server/data_shard/primitive_cache' || exit 2
create_dir_gameserver '/home/gameserver/khanat/server/su' || exit 2
create_dir_gameserver '/home/gameserver/khanat/server/ms' || exit 2
create_dir_gameserver '/home/gameserver/khanat/server/egs' || exit 2
create_dir_gameserver '/home/gameserver/khanat/server/data_shard_local' || exit 2
create_dir_gameserver '/home/gameserver/khanat/server/data_shard_local/statistics' || exit 2
create_dir_gameserver '/home/gameserver/khanat/server/fes' || exit 2
create_dir_gameserver '/home/gameserver/khanat/server/mfs' || exit 2
create_dir_gameserver '/home/gameserver/khanat/server/ras' || exit 2
create_dir_gameserver '/home/gameserver/khanat/server/ios' || exit 2
create_dir_gameserver '/home/gameserver/khanat/server/sbs' || exit 2
create_dir_gameserver '/home/gameserver/khanat/server/ais_newbyland' || exit 2
create_dir_gameserver '/home/gameserver/khanat/server/rns' || exit 2
create_dir_gameserver '/home/gameserver/khanat/server/ts' || exit 2
}
#####################
@ -235,6 +235,18 @@ tmp=$(hostname -I)
export addressip=${tmp//[[:blank:]]/}
sudo sed -i -r 's/(FSListenHost)(.*)(=)(.*)(;)/FSListenHost = "'"$addressip"'";/g' $KHANAT_PATH/server/frontend_service.cfg || exit 2
#####################
# Update configuration
#####################
msg_debug "Update configuration with new path"
newpath="$KHANAT_PATH/server/common/"
newpath=${newpath//\//\\\/}
for filecfg in $KHANAT_PATH/server/*.cfg
do
msg_debug "[$(basename $0):$LINENO] update $filecfg"
#sudo sed -i -r "s/..\/common\//$newpath/g" $filecfg
#sudo sed -i -r "s/..\/common\//common\//g" $filecfg
done
#####################
# Reconfigure database

View file

@ -23,7 +23,7 @@ ENV HOSTNAME basic_server
RUN apt-get update ; \
apt-get dist-upgrade -y ; \
DEBIAN_FRONTEND=noninteractive apt-get install -y curl nano vim less bash-completion cron logrotate bsd-mailx openssh-server sudo net-tools lzma xdelta p7zip p7zip-full mysql-server apache2 php libapache2-mod-php php-mysql apache2-utils php-gd php-imagick rrdtool screen mcrypt php-mcrypt python3 phpmyadmin
DEBIAN_FRONTEND=noninteractive apt-get install -y curl nano vim less bash-completion cron logrotate bsd-mailx openssh-server sudo net-tools lzma xdelta p7zip p7zip-full mysql-server apache2 php libapache2-mod-php php-mysql apache2-utils php-gd php-imagick rrdtool screen mcrypt php-mcrypt python3 phpmyadmin gdb

View file

@ -21,6 +21,8 @@ MAINTAINER AleaJactaEst
ENV HOSTNAME khanat_server
RUN ulimit -c unlimited
COPY server/debian/common/servercontainer_function.sh /opt/
COPY server/debian/common/servercontainer_init_* /opt/

View file

@ -355,7 +355,7 @@ msg_debug "[$(basename $0):$LINENO] localization khanat-client-data: ${KHANAT_CL
msg_debug "[$(basename $0):$LINENO] localization opennel-code-client : ${OPENNEL_CODE_DIR}"
msg_debug "[$(basename $0):$LINENO] generate khanat image: $KHANATSERVER"
msg_debug "[$(basename $0):$LINENO] launch khanat: $LAUNCHKHANAT"
msg_debug "stop khanat: $STOPKHANAT"
msg_debug "[$(basename $0):$LINENO] stop khanat: $STOPKHANAT"
msg_info "[$(basename $0):$LINENO] check khanat-ressources"
if [[ ! -d ${KHANAT_RESSOURCES_DIR} ]]
@ -534,4 +534,8 @@ then
fi
trap '' EXIT
msg_info "[$(basename $0):$LINENO] CLEAR TERMINAL"
clear
tput clear
msg_info "[$(basename $0):$LINENO] END"