synOCR ist eine einfache GUI für den Dockercontainer OCRmyPDF auf Synology Diskstation.

Die Downloadseite findest du hier: https://geimist.eu/link/synocrdownload
Hilfe und Diskussion hier im Forum: https://geimist.eu/link/synocrforum
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

build_spk.sh 4.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. #!/bin/bash
  2. #----------------------------------------------------------------------------------------
  3. # Scriptaufruf:
  4. #----------------------------------------------------------------------------------------
  5. # erstellt das SPK aus dem aktuellen master-branch vom Server:
  6. # sh ./build_spk.sh
  7. #
  8. # erstellt das SPK aus dem als Parameter übergebenen Release vom Server:
  9. # sh ./build_spk.sh 4.0.7
  10. #
  11. #----------------------------------------------------------------------------------------
  12. # Ordnerstruktur:
  13. #----------------------------------------------------------------------------------------
  14. # ./APP --> Arbeitsumgebung (erstellen/editieren/verschieben)
  15. # ./PKG --> Archivordner zum Aufbau des SPK (Startscripte etc.)
  16. #
  17. set -euo pipefail
  18. IFS=$'\n\t'
  19. function finish {
  20. git worktree remove --force "$build_tmp"
  21. rm -rf "$build_tmp"
  22. }
  23. trap finish EXIT
  24. #######
  25. project="synOCR"
  26. #######
  27. if ! [ -x "$(command -v git)" ]; then
  28. echo 'Error: git is not installed.' >&2
  29. exit 1
  30. fi
  31. if ! [ -x "$(command -v fakeroot)" ]; then
  32. if [ $(whoami) != "root" ]; then
  33. echo "WARNUNG: fakeroot ist nicht installiert und du bist auch nicht root!" >&2
  34. exit 1
  35. else
  36. echo 'WARNUNG: fakeroot ist nicht installiert!' >&2
  37. FAKEROOT=""
  38. fi
  39. else
  40. FAKEROOT=$(command -v fakeroot)
  41. fi
  42. # Arbeitsverzeichnis auslesen und hineinwechseln:
  43. # ---------------------------------------------------------------------
  44. # shellcheck disable=SC2086
  45. APPDIR=$(cd "$(dirname $0)";pwd)
  46. cd "${APPDIR}"
  47. build_tmp=$(mktemp -d -t tmp.XXXXXXXXXX)
  48. buildversion=${1:-latest}
  49. taggedversions=$(git tag)
  50. echo " - INFO: Erstelle den temporären Buildordner und kopiere Sourcen hinein ..."
  51. git worktree add --force "$build_tmp" "$(git rev-parse --abbrev-ref HEAD)"
  52. pushd "$build_tmp"
  53. #set_spk_version="latest-$(date +%s)-$(git log -1 --format="%h")"
  54. set_spk_version="latest_($(date +%Y)-$(date +%m)-$(date +%d)_$(date +%H)-$(date +%M))_$(git log -1 --format="%h")"
  55. if echo "$taggedversions" | egrep -q "$buildversion"; then
  56. echo "git checkout zu $buildversion"
  57. git checkout "$buildversion"
  58. set_spk_version="$buildversion"
  59. else
  60. echo "ACHTUNG: Die gewünschte Version wurde im Repository nicht gefunden!"
  61. echo "Die $(git rev-parse --abbrev-ref HEAD)-branch wird verwendet!"
  62. fi
  63. # fallback to old app dir
  64. if [ -d "$build_tmp"/Build ]; then
  65. APP=Build
  66. else
  67. APP=APP
  68. fi
  69. # fallback to old pkg dir
  70. if [ -d "$build_tmp"/Pack ]; then
  71. PKG=Pack
  72. else
  73. PKG=PKG
  74. fi
  75. build_version=$(grep version "$build_tmp/$PKG/INFO" | awk -F '"' '{print $2}')
  76. #set_spk_version=$build_version
  77. echo " - INFO: Es wird foldende Version geladen und gebaut: $set_spk_version - BUILD-Version (INFO-File): $build_version"
  78. # Ausführung: Erstellen des SPK
  79. echo ""
  80. echo "-----------------------------------------------------------------------------------"
  81. echo " SPK wird erstellt..."
  82. echo "-----------------------------------------------------------------------------------"
  83. # Falls versteckter Ordners /.helptoc vorhanden, diesen nach /helptoc umbenennen
  84. if test -d "${build_tmp}/.helptoc"; then
  85. echo ""
  86. echo " - INFO: Versteckter Ordner /.helptoc wurde lokalisiert und nach /helptoc umbenannt"
  87. mv "${build_tmp}/.helptoc" "${build_tmp}/helptoc"
  88. fi
  89. # Packen und Ablegen der aktuellen Installation in den entsprechenden /Pack - Ordner
  90. echo ""
  91. echo " - INFO: Das Archiv package.tgz wird erstellt..."
  92. $FAKEROOT tar -C "${build_tmp}"/"$APP" -czf "${build_tmp}"/"$PKG"/package.tgz .
  93. # Wechsel in den Ablageort von package.tgz bezüglich Aufbau des SPK's
  94. cd "${build_tmp}"/"$PKG"
  95. # Erstellen des eigentlichen SPK's
  96. echo ""
  97. echo " - INFO: Das SPK wird erstellt..."
  98. $FAKEROOT tar -cf "${project}"_"$set_spk_version".spk *
  99. cp -f "${project}"_"$set_spk_version".spk "${APPDIR}"
  100. echo ""
  101. echo "-----------------------------------------------------------------------------------"
  102. echo " Das SPK wurde erstellt und befindet sich unter..."
  103. echo "-----------------------------------------------------------------------------------"
  104. echo ""
  105. echo " ${APPDIR}/${project}_$set_spk_version.spk"
  106. echo ""
  107. exit 0