#!/bin/sh

if [ "$UID" != 0 ]; then
	echo "Ошибка: необходимы root-права!"
	exit 1
fi

VERSION=latest
DOCKER_IMAGE_NAME="nr-repo.roskazna.ru/nr-plugin"

MINCIFRI_THUMBPRINT="2f0cb09be3550ef17ec4f29c90abd18bfcaad63a"
MINKOMSVYAZ_THUMBPRINT="4bc6dc14d97010c41a26e058ad851f81c842415a"

systemctl enable --now docker
systemctl enable --now pcscd.socket

echo "Останавливаем работающие контейнеры Docker"
docker ps -q --filter name="my-nr-plugin" | xargs -r docker stop

echo "Устанавливаем образ Docker"
docker pull $DOCKER_IMAGE_NAME:$VERSION 2>&1
if [ $? != 0 ]; then
  echo "Ошибка установки образа Docker"
fi

UNTAGGED_IMAGES=$(docker images ${DOCKER_IMAGE_NAME} --filter "dangling=true" -q --no-trunc)
if [ ! -z $UNTAGGED_IMAGES ]; then
  echo "Удаляем untagged образы Docker"
  docker rmi -f $UNTAGGED_IMAGES
fi

/opt/cprocsp/bin/amd64/certmgr -list -certificate -store mROOT -thumbprint $MINCIFRI_THUMBPRINT
if [ $? != 0 ]; then
  if [ -f "/usr/share/nr-plugin/root.cer" ]; then
    /opt/cprocsp/bin/amd64/certmgr -install -store mRoot -file /usr/share/nr-plugin/root.cer -certificate

    if [ $? != 0 ]; then
      halt_error "Ошибка установки корневого сертификата Минцифры"
    fi
  fi
fi

/opt/cprocsp/bin/amd64/certmgr -list -certificate -store mROOT -thumbprint $MINKOMSVYAZ_THUMBPRINT
if [ $? != 0 ]; then
  if [ -f "/usr/share/nr-plugin/mincomsvyaz.cer" ]; then
    /opt/cprocsp/bin/amd64/certmgr -install -store mRoot -file /usr/share/nr-plugin/mincomsvyaz.cer -certificate

    if [ $? != 0 ]; then
      halt_error "Ошибка установки корневого сертификата Минкомсвязи"
    fi
  fi
fi

/opt/cprocsp/sbin/amd64/cpconfig -ini '\config\parameters' -add long dynamic_readers 1
/opt/cprocsp/sbin/amd64/cpconfig -ini '\config\parameters' -add long dynamic_rdr_refresh_ms 1500
systemctl restart cprocsp

echo -e 'Установка завершена!\nПерезагрузите компьютер.'
