#!/bin/bash
# mvh just compiles or recompiles sqlite and (re)install as service; uses newweb as html not cgi-bin
# mvh 20220829 Compile servertask here and copy to web
# mvh 20250911 Fallback for failed jpeg-c ./configure on debian 13

export CONQUEST=$(pwd)
export CONQUESTTEMP=$CONQUEST/temp
[ ! -d $CONQUESTTEMP ] && mkdir $CONQUESTTEMP
chmod 777 $CONQUESTTEMP
export IP=$(hostname -I | xargs)

SRC=./src/dgate;
CONF=./linux/conf;
LINUX=./linux;
#LUA="$SRC/lua.o $SRC/luasocket/luasocket.a";
LUA=-llua5.1;
#LUA="-llua5.1 $SRC/luasocket/luasocket.a";
FLAGS="-std=c++11 -DUNIX -DNATIVE_ENDIAN=1 -DHAVE_LIBJPEG -DHAVE_LIBCHARLS -DHAVE_LIBOPENJPEG2 -Wno-write-strings -Wno-multichar -Wno-format-overflow -Wno-deprecated-declarations";
INCS="-I$SRC/dicomlib -ljpeg -lpthread -ldl -I$SRC/src -I$SRC/jpeg-6c -L$SRC/jpeg-6c -I$SRC/lua_5.1.5 -I$SRC/openjpeg -I$SRC/charls";
OBS="$SRC/charls.o $SRC/openjpeg.o";

#sudo mkdir /usr/local/man.man1
chmod 777 src/dgate/jpeg-6c/configure
cd src/dgate/jpeg-6c
cp makefile.linux Makefile
cp jconfig.linux jconfig.h
./configure
make
echo "#### Please ignore the errors below"
sudo make install
echo "#### Please ignore the errors above"
cd ../../..

#chmod 777 src/dgate/luasocket/amake.sh;
#cd src/dgate/luasocket;
#./amake.sh;
#cd ../../..

chmod 777 src/servertask/make.sh;
cd src/servertask;
./make.sh;
cd ../..

export opt='sqlite'

#			gcc -o $SRC/lua.o -c $SRC/lua_5.1.5/all.c -I$SRC/lua_5.1.5 -DLUA_USE_DLOPEN -DLUA_USE_POSIX;
			gcc -c -DTHREADSAFE=1 -DHAVE_USLEEP $SRC/sqlite3/sqlite3.c -I$SRC/sqlite3 -o $SRC/sqlite3.o;
			g++ -std=c++11 -o $SRC/charls.o -c $SRC/charls/all.cpp -I$SRC/charls -Wno-deprecated-declarations
			gcc -o $SRC/openjpeg.o -c $SRC/openjpeg/all.c -I$SRC/openjpeg
			g++ $FLAGS -DUSESQLITE $SRC/sqlite3.o $OBS -o dgate $SRC/src/total.cpp $LUA $INCS -I$SRC/sqlite3;
			rm $SRC/sqlite3.o;

	[ -f $SRC/lua.o ] && rm $SRC/lua.o;
	[ -f $SRC/charls.o ] && rm $SRC/charls.o;
	[ -f $SRC/openjpeg.o ] && rm $SRC/openjpeg.o;

	sudo pkill -9 dgate;
	sleep 0.2s;

	[ -f dicom.ini ] && cp dicom.ini dicom.ini.bak
	[ ! -f dicom.ini ] && envsubst < $CONF/dicom.ini.$opt > dicom.ini;
	[ ! -f dicom.sql ] && cp $CONF/dicom.sql.$opt dicom.sql;

	[ ! -f acrnema.map ] && cp $LINUX/acrnema.map acrnema.map;
	[ ! -f dgatesop.lst ] && cp $LINUX/dgatesop.lst dgatesop.lst;

#	[ ! -d /usr/lib/cgi-bin ] && sudo mkdir -p /usr/lib/cgi-bin ;
#	sudo chmod 777 /usr/lib/cgi-bin ;
#	sudo cp -r ./webserver/cgi-bin/* /usr/lib/cgi-bin;
#	sudo cp -r ./webserver/cgi-bin/.lua /usr/lib/cgi-bin;
#	sudo cp -r ./webserver/cgi-bin/.lua.linux /usr/lib/cgi-bin;
#	envsubst < ./webserver/cgi-bin/dicom.ini.linux > t.t;
#	sudo cp t.t /usr/lib/cgi-bin/dicom.ini;
#	envsubst < ./webserver/cgi-bin/newweb/dicom.ini.linux > t.t;
#	sudo cp t.t /usr/lib/cgi-bin/newweb/dicom.ini;
#	sudo cp /usr/lib/cgi-bin/.lua.linux /usr/lib/cgi-bin/.lua;
#	rm t.t

        cp dgate webserver/htdocs/app/newweb;
	cp src/servertask/servertask webserver/htdocs/api/dicom/servertask;
	chmod 777 webserver/htdocs/api/dicom/servertask;
	sudo cp -r webserver/htdocs/* /var/www/html;
	
	[ ! -d data/dbase ] && mkdir data/dbase
	[ ! -d data/incoming ] && mkdir data/incoming
	
	chmod 777 linux/console.sh
	chmod 777 linux/webviewer.sh	
	chmod 777 linux/restart
	chmod 777 linux/regen
	chmod 777 linux/updatelinux
	chmod 777 linux/prerequisites
	chmod 777 install/linux.sh
	
	envsubst <conquest.service >t.t
		sudo systemctl stop conquest.service
		sudo cp t.t /etc/systemd/system/conquest.service
		sudo systemctl daemon-reload
		sudo systemctl start conquest.service
		sudo systemctl enable conquest.service
	rm t.t
