SynOTR liefert einen Workflow für TV-Aufnahmen von onlineTVrecorder (OTR) auf Synology NAS. Homepage: https://synotr.geimist.eu
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 5.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  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. # ./[NAME-DES-SPK]/Build --> Arbeitsumgebung (erstellen/editieren/verschieben)
  15. # ./[NAME-DES-SPK]/Pack --> Archivordner zum Aufbau des SPK (Startscripte etc.)
  16. #
  17. project="synOTR"
  18. skriptuser=`whoami`
  19. if [ ${skriptuser} != "root" ]; then
  20. echo "Dieses Skript muss von Root ausgeführt werden!"
  21. exit 1
  22. fi
  23. # Arbeitsverzeichnis auslesen und hineinwechseln:
  24. # ---------------------------------------------------------------------
  25. APPDIR=$(cd $(dirname $0);pwd)
  26. cd ${APPDIR}
  27. build_tmp="${APPDIR}/build_tmp"
  28. dir=${APPDIR}
  29. buildversion=$1
  30. if [ -d "./${project}" ] ; then
  31. rm -rf "./${project}"
  32. fi
  33. gitpull()
  34. {
  35. gitpath=`which git`
  36. if [ -z ${gitpath} ]; then
  37. echo "Das Programm git konnte nicht gefunden werden."
  38. exit 1
  39. fi
  40. # Ausführung: Erstellen des SPK
  41. echo ""
  42. echo "-----------------------------------------------------------------------------------"
  43. echo " git holt die aktuelle Version ..."
  44. echo "-----------------------------------------------------------------------------------"
  45. if [ -d "./${project}" ] ; then
  46. cd ${project}
  47. git pull
  48. versions=`git tag`
  49. cd ${APPDIR}
  50. else
  51. git clone https://geimist.eu:30443/geimist/${project}.git
  52. cd ${project}
  53. git pull
  54. versions=`git tag`
  55. cd ${APPDIR}
  56. fi
  57. #build_version=`cat "${APPDIR}/${project}/Pack/INFO" | grep version | awk -F '"' '{print $2}'`
  58. # welche Version soll gebaut werden:
  59. if [ -z $buildversion ]; then
  60. echo "git checkout zu master-branch"
  61. cd ${project}
  62. git checkout master
  63. cd ${APPDIR}
  64. set_spk_version="latest_(`date +%Y`-`date +%m`-`date +%d`_`date +%H`-`date +%M`)"
  65. else
  66. if echo "$versions" | egrep -q "$buildversion"; then
  67. echo "git checkout zu $buildversion"
  68. cd ${project}
  69. git checkout "$buildversion"
  70. set_spk_version="$buildversion"
  71. cd ${APPDIR}
  72. else
  73. echo "ACHTUNG: Die gewünschte Version wurde im Repository nicht gefunden!"
  74. echo "Der master-branch wird verwendet!"
  75. cd ${project}
  76. git checkout master
  77. cd ${APPDIR}
  78. set_spk_version="latest_(`date +%Y`-`date +%m`-`date +%d`_`date +%H`-`date +%M`)"
  79. fi
  80. fi
  81. }
  82. gitpull
  83. build_version=$(get_key_value "${APPDIR}/${project}/Pack/INFO" version )
  84. echo " - INFO: Es wird foldende Version geladen und gebaut: $set_spk_version - BUILD-Version (INFO-File): $build_version"
  85. echo " - INFO: Erstelle den temporären Buildordner und kopiere Sourcen hinein ..."
  86. if [ -d "./build_tmp" ] ; then
  87. rm -rf "./build_tmp"
  88. fi
  89. mkdir "${build_tmp}"
  90. cp -r "${APPDIR}/${project}"/* "${build_tmp}/"
  91. # Ausführung: Erstellen des SPK
  92. echo ""
  93. echo "-----------------------------------------------------------------------------------"
  94. echo " SPK wird erstellt..."
  95. echo "-----------------------------------------------------------------------------------"
  96. # Falls versteckter Ordners /.helptoc vorhanden, diesen nach /helptoc umbenennen
  97. if test -d "${build_tmp}/.helptoc"; then
  98. echo ""
  99. echo " - INFO: Versteckter Ordner /.helptoc wurde lokalisiert und nach /helptoc umbenannt"
  100. mv ${build_tmp}/.helptoc ${build_tmp}/helptoc
  101. fi
  102. # Rechte anpassen
  103. echo ""
  104. echo " - INFO: Dateirechte anpassen ..."
  105. for i in $(find "${build_tmp}/Pack/" -type f)
  106. do
  107. # echo "ändere Pack: $i"
  108. chmod 755 "$i"
  109. chown root:root "$i"
  110. done
  111. for i in $(find "${build_tmp}/Build/" -type f)
  112. do
  113. # echo "ändere Build: $i"
  114. chmod 755 "$i"
  115. chown root:root "$i"
  116. done
  117. # Packen und Ablegen der aktuellen Installation in den entsprechenden /Pack - Ordner
  118. echo ""
  119. echo " - INFO: Das Archiv package.tgz wird erstellt..."
  120. tar -C ${build_tmp}/Build -czf ${build_tmp}/Pack/package.tgz .
  121. # Wechsel in den Ablageort von package.tgz bezüglich Aufbau des SPK's
  122. cd ${build_tmp}/Pack
  123. # Erstellen des eigentlichen SPK's
  124. echo ""
  125. echo " - INFO: Das SPK wird erstellt..."
  126. tar -cf ${project}_$set_spk_version.spk *
  127. mv ${project}_$set_spk_version.spk ${APPDIR}
  128. # Löschen der temporären Daten
  129. echo ""
  130. echo " - INFO: Der temporäre Ordner wird wieder geschlöscht ..."
  131. cd ${APPDIR}
  132. if [ -d "./build_tmp" ] ; then
  133. rm -rf "./build_tmp"
  134. fi
  135. echo ""
  136. echo "-----------------------------------------------------------------------------------"
  137. echo " Das SPK wurde erstellt und befindet sich unter..."
  138. echo "-----------------------------------------------------------------------------------"
  139. echo ""
  140. echo " ${APPDIR}/${project}_$set_spk_version.spk"
  141. echo ""
  142. exit 0