#!/bin/bash

#
# Формирование deb-пакета для aisexpert-web
#
package_dir=$script_dir/build/${build_subdir}/deb/aisexpert-web
echo -e "\npackage_dir: $package_dir"

package_name="aisexpert-web-${package_vers}-${package_date}git${gitrev}-${os_id}${os_ver}-${os_arch}.deb"
echo "package_name: $package_name"

rm -rf $package_dir

mkdir -p $package_dir/DEBIAN
mkdir -p $package_dir/etc/systemd/system
mkdir -p $package_dir/opt/aisexpert-web/backend
mkdir -p $package_dir/opt/aisexpert-web/frontend
mkdir -p $package_dir/etc/nginx/sites-available
mkdir -p $package_dir/var/opt/aisexpert-web/database

cp $script_dir/setup/deb/aisexpert-web/DEBIAN/*        $package_dir/DEBIAN
cp $build_back_dir/libs/aisexpert-backend.jar          $package_dir/opt/aisexpert-web/backend
cp $script_dir/systemd/run.sh                          $package_dir/opt/aisexpert-web/backend
cp $script_dir/systemd/aisexpert-web-backend.service   $package_dir/etc/systemd/system
cp -r $build_front_dir                                 $package_dir/opt/aisexpert-web/frontend
cp $script_dir/config/01-aisexpert.conf                $package_dir/etc/nginx/sites-available

# Копируем пустую базу для бекенда
cp $script_dir/database/aisexpert-web.fdb              $package_dir/var/opt/aisexpert-web/database

chmod -R go-w        $package_dir
chmod    u=rwx,go=rx $package_dir/DEBIAN/post*
chmod    u=rwx,go=rx $package_dir/DEBIAN/pre*
chmod    u=rw,go=r   $package_dir/DEBIAN/conffiles
chmod -R u=rwX,go=rX $package_dir/opt/aisexpert-web/backend
chmod -R u=rwX,go=rX $package_dir/opt/aisexpert-web/frontend
chmod -R u=rwX,go=rX $package_dir/etc/nginx/sites-available
chmod    ug=rw,o=r   $package_dir/var/opt/aisexpert-web/database/*

# Размер пакета
installed_size=$(du -s $package_dir | sed -r 's/([0-9]+).*/\1/')
echo "installed_size: $installed_size"

#packet_depends=$(cat << EOS
#openjdk-8-jre|oracle-java8-set-default, nginx
#EOS
#)

packet_depends="nginx"
if [ "$os_ver" = "18.04" ]; then
    packet_depends="$packet_depends, openjdk-11-jre" 
else
    packet_depends="$packet_depends, openjdk-8-jre|oracle-java8-set-default" 
fi

os_arch_control=$os_arch
[ "${os_arch:0:3}" = "arm" ] && os_arch_control=armhf
sed -e "s/%VERSION%/${package_vers}-${package_date}git${gitrev}/" \
    -e "s/%ARCHITECTURE%/${os_arch_control}/" \
    -e "s/%INSTALLED_SIZE%/${installed_size}/" \
    -e "s/%DEPENDS%/${packet_depends}/" \
    -i $package_dir/DEBIAN/control

# Контрольные суммы файлов пакета
cd $package_dir
md5deep -rl -o f etc >> DEBIAN/md5sums
md5deep -rl -o f opt >> DEBIAN/md5sums
chmod  0644 DEBIAN/md5sums
cd $script_dir

# Создание deb-пакета
fakeroot dpkg-deb --build $package_dir ${build_dir}/$package_name

# Проверка deb-пакета
echo "Start 'lintian'"
set +e
lintian --suppress-tags \
hardening-no-relro,\
binary-or-shlib-defines-rpath,\
dir-or-file-in-opt,\
bad-package-name,\
package-not-lowercase,\
systemd-service-file-outside-lib,\
maintainer-script-calls-systemctl,\
file-in-etc-not-marked-as-conffile,\
maintainer-script-ignores-errors,\
maintainer-script-empty,\
file-in-unusual-dir \
${build_dir}/$package_name
set -e

if [ "$build_deb_package" = "yes" ]; then
    cd $script_dir
    mkdir -p packages
    echo "Copying the file $package_name to directory ./packages"
    cp -f ${build_dir}/$package_name ./packages
fi

if [ "$install_aisexpert_web" = "yes" ]; then
    echo "Install AisExpertWeb..."
    sudo dpkg -i ${build_dir}/$package_name
    echo "AisExpertWeb installation is complete"
fi
