Compare commits
1
Commits
main
..
f53d2203b0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f53d2203b0 |
@@ -1,15 +1,9 @@
|
||||
name: 📦 Veröffentlichen → updates.rhino.nrw
|
||||
name: Mirror to Public Gitea (updates.rhino.nrw)
|
||||
|
||||
# Zwei Wege, denselben Job auszulösen:
|
||||
# • workflow_dispatch: KNOPF in Gitea (Actions-Tab → "Run workflow") — kein Terminal.
|
||||
# Veröffentlicht den aktuellen Stand aus 'main' (Staging) nach updates.rhino.nrw.
|
||||
# • push auf 'release': für das CLI-Skript release.py (Power-User-Weg).
|
||||
# Trigger: Nur wenn explizit auf den 'release'-Branch gepusht wird.
|
||||
# Das stellt sicher, dass nur geprüfte, validierte Stände ausgeliefert werden.
|
||||
# Workflow auf main: git push origin main:release
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
hinweis:
|
||||
description: "Optional: Version/Notiz (nur fürs Protokoll)"
|
||||
required: false
|
||||
push:
|
||||
branches: [release]
|
||||
|
||||
@@ -22,28 +16,7 @@ jobs:
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: CHECKSUMS.txt pro Projekt frisch erzeugen
|
||||
- name: Push mirror to Public Gitea (als 'main')
|
||||
run: |
|
||||
for d in */ ; do
|
||||
d="${d%/}"
|
||||
if ls "$d"/sync-bundle-*.txt >/dev/null 2>&1; then
|
||||
( cd "$d" && sha256sum sync-bundle-*.txt sync-entpacken.bat 2>/dev/null > CHECKSUMS.txt )
|
||||
echo "CHECKSUMS.txt erzeugt für $d"
|
||||
fi
|
||||
done
|
||||
|
||||
- name: Commit (nur im Runner, fließt in den public-Mirror)
|
||||
run: |
|
||||
git config user.email "action@gitea.rhino.nrw"
|
||||
git config user.name "Gitea Action"
|
||||
git add -A
|
||||
git commit -m "ci: CHECKSUMS.txt bei Veröffentlichung erzeugt" || echo "Keine Änderung."
|
||||
|
||||
- name: Push nach Public-Gitea (updates.rhino.nrw)
|
||||
env:
|
||||
PUBLIC_GITEA_TOKEN: ${{ secrets.PUBLIC_GITEA_TOKEN }}
|
||||
run: |
|
||||
AUTH=$(printf 'rhino:%s' "$PUBLIC_GITEA_TOKEN" | base64 | tr -d '\n')
|
||||
git -c http.extraHeader="Authorization: Basic $AUTH" \
|
||||
push http://172.30.0.4:3053/rhino/StatusQuo_Updates.git HEAD:main --force
|
||||
echo "Veröffentlicht: $(cat VI3DGL/VERSION 2>/dev/null) — Hinweis: ${{ github.event.inputs.hinweis }}"
|
||||
git remote add public "http://rhino:${{ secrets.PUBLIC_GITEA_TOKEN }}@172.30.0.4:3053/rhino/StatusQuo_Updates.git"
|
||||
git push public HEAD:main --force
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
# SHA256-Checksummen der Sync-Bundles
|
||||
# Generiert mit: sha256sum VI3DGL/sync-bundle-*.txt > VI3DGL/CHECKSUMS.txt
|
||||
# Wird von update.ps1 verifiziert bevor Dateien ersetzt werden.
|
||||
# Leere Datei = Prüfung wird übersprungen (abwärtskompatibel).
|
||||
@@ -1,3 +0,0 @@
|
||||
b1a4e69eaa33c15a51bc8b082cd305c8d8c3a94a4e4a3f3d5d14040a28221f1e sync-bundle-01.txt
|
||||
ab0a7311b0deb8ad4b59cfbcb91adc7b97e0a8c52658acfd0faf54f90df02047 sync-bundle-02.txt
|
||||
95bdd3993481ac8ec937f1adb09bf1851735619dca2dd4283c7608f13f0e1e7e sync-entpacken.bat
|
||||
+1
-2
@@ -1,4 +1,4 @@
|
||||
# 30 Dateien in 2 Bundles
|
||||
# 29 Dateien in 2 Bundles
|
||||
sync-bundle-01.txt DRIVE_Start.bat
|
||||
sync-bundle-01.txt DRIVE_Stop.bat
|
||||
sync-bundle-01.txt VERSION
|
||||
@@ -27,5 +27,4 @@ sync-bundle-01.txt data/governance.template.json
|
||||
sync-bundle-01.txt data/index.js
|
||||
sync-bundle-01.txt favicon.ico
|
||||
sync-bundle-02.txt index.html
|
||||
sync-bundle-02.txt rollback.bat
|
||||
sync-bundle-02.txt server.ps1
|
||||
|
||||
@@ -9735,99 +9735,6 @@ ICAgIH0sIDE1MDApOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgbG9jYWxT
|
||||
dG9yYWdlLnJlbW92ZUl0ZW0oJ2RyaXZlLXJlc3VtZS1kb2MnKTsKICAgICAgICAgICAgfQogICAg
|
||||
ICAgIH0KICAgIH0gY2F0Y2goZSkgewogICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdk
|
||||
cml2ZS1yZXN1bWUtZG9jJyk7CiAgICB9Cn0pOwo8L3NjcmlwdD4KCjwvYm9keT4KPC9odG1sPgo=
|
||||
### FILE: rollback.bat | 5232
|
||||
QGVjaG8gb2ZmCnNldGxvY2FsCnNldCAiQkRJUj0lfmRwMCIKZWNoby4KZWNobyAgPT09IEQuUi5J
|
||||
LlYuRS46IFJvbGxiYWNrIChvZmZsaW5lKSA9PT0KZWNobyAgU3RlbGx0IGRlbiBTdGFuZCB2b3Ig
|
||||
ZGVtIGxldHp0ZW4gVXBkYXRlIHdpZWRlciBoZXIuCmVjaG8uCnBvd2Vyc2hlbGwgLU5vUHJvZmls
|
||||
ZSAtRXhlY3V0aW9uUG9saWN5IEJ5cGFzcyAtQ29tbWFuZCAiJG09JyMjIyBQUycrJ0NPREUgIyMj
|
||||
JzskbWU9W0lPLkZpbGVdOjpSZWFkQWxsVGV4dCgnJX5mMCcpOyRwPSRtZS5JbmRleE9mKCRtKTsk
|
||||
bmw9JG1lLkluZGV4T2YoW2NoYXJdMTAsJHApOyRyb290PSRlbnY6QkRJUi5UcmltRW5kKCdcJyk7
|
||||
JHN0b3BCYXQ9J0RSSVZFX1N0b3AuYmF0Jzskc3RhcnRCYXQ9J0RSSVZFX1N0YXJ0LmJhdCc7SW52
|
||||
b2tlLUV4cHJlc3Npb24gJG1lLlN1YnN0cmluZygkbmwrMSkiCmVjaG8uCnBhdXNlCmV4aXQgL2IK
|
||||
IyMjIFBTQ09ERSAjIyMKJEVycm9yQWN0aW9uUHJlZmVyZW5jZSA9ICdTdG9wJwojIEVyd2FydGV0
|
||||
IGltIFNjb3BlOiAkcm9vdCwgJHN0b3BCYXQsICRzdGFydEJhdAokX3N0b3BOYW1lICA9IGlmICgk
|
||||
bnVsbCAtbmUgJHN0b3BCYXQpICB7ICRzdG9wQmF0IH0gIGVsc2UgeyAnc3RvcC5iYXQnIH0KJF9z
|
||||
dGFydE5hbWUgPSBpZiAoJG51bGwgLW5lICRzdGFydEJhdCkgeyAkc3RhcnRCYXQgfSBlbHNlIHsg
|
||||
J2RnbC5iYXQnIH0KCiMgQXVzc2NobHVzc2xpc3RlIChpZGVudGlzY2ggenUgdXBkYXRlLnBzMSk6
|
||||
IC5iYWNrdXAgbmllIGFuZmFzc2VuLCBwbHVzIGdyb8OfZQojIENvbnRlbnQtT3JkbmVyIGF1cyAu
|
||||
YmFja3VwaWdub3JlIOKAlCBkaWVzZSBibGVpYmVuIGJlaW0gUm9sbGJhY2sgdW52ZXLDpG5kZXJ0
|
||||
LgokX2V4Y2wgPSBAKCcuYmFja3VwJykKJF9pZ25vcmVGaWxlID0gSm9pbi1QYXRoICRyb290ICcu
|
||||
YmFja3VwaWdub3JlJwppZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkX2lnbm9yZUZpbGUpIHsK
|
||||
ICAgICRfZXh0cmEgPSBAKEdldC1Db250ZW50IC1MaXRlcmFsUGF0aCAkX2lnbm9yZUZpbGUgfCBG
|
||||
b3JFYWNoLU9iamVjdCB7ICRfLlRyaW0oKSB9IHwKICAgICAgICAgICAgICAgIFdoZXJlLU9iamVj
|
||||
dCB7ICRfIC1uZSAnJyAtYW5kIC1ub3QgJF8uU3RhcnRzV2l0aCgnIycpIH0pCiAgICAkX2V4Y2wg
|
||||
PSAkX2V4Y2wgKyAkX2V4dHJhCn0KJF9leGNsID0gQCgkX2V4Y2wpICAgIyBzdHJpa3QgYWxzIEFy
|
||||
cmF5ICh2ZXJoaW5kZXJ0IFNrYWxhci1FbnRwYWNrdW5nKQoKJGJrID0gSm9pbi1QYXRoICRyb290
|
||||
ICcuYmFja3VwJwppZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkYmspKSB7CiAgICBX
|
||||
cml0ZS1Ib3N0ICJLZWluIEJhY2t1cC1WZXJ6ZWljaG5pcyBnZWZ1bmRlbi4gU2ljaGVydW5nZW4g
|
||||
ZW50c3RlaGVuIGF1dG9tYXRpc2NoIGJlaW0gZXJzdGVuIFVwZGF0ZS4iIC1Gb3JlZ3JvdW5kQ29s
|
||||
b3IgUmVkCiAgICByZXR1cm4KfQokc25hcHMgPSBHZXQtQ2hpbGRJdGVtIC1MaXRlcmFsUGF0aCAk
|
||||
YmsgLUZpbHRlciAnc25hcHNob3QtKi56aXAnIC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVl
|
||||
IHwgU29ydC1PYmplY3QgTmFtZSAtRGVzY2VuZGluZwppZiAoLW5vdCAkc25hcHMpIHsKICAgIFdy
|
||||
aXRlLUhvc3QgIktlaW5lIFNpY2hlcnVuZ2VuIHZvcmhhbmRlbi4gU2ljaGVydW5nZW4gZW50c3Rl
|
||||
aGVuIGF1dG9tYXRpc2NoIGJlaW0gZXJzdGVuIFVwZGF0ZS4iIC1Gb3JlZ3JvdW5kQ29sb3IgUmVk
|
||||
CiAgICByZXR1cm4KfQoKV3JpdGUtSG9zdCAiIgpXcml0ZS1Ib3N0ICJWZXJmw7xnYmFyZSBTaWNo
|
||||
ZXJ1bmdlbiAobmV1ZXN0ZSB6dWVyc3QpOiIgLUZvcmVncm91bmRDb2xvciBDeWFuCiRpID0gMApm
|
||||
b3JlYWNoICgkcyBpbiAkc25hcHMpIHsKICAgICRzaXplID0gJ3swOk4xfSBNQicgLWYgKCRzLkxl
|
||||
bmd0aCAvIDFNQikKICAgICR0YWcgID0gaWYgKCRpIC1lcSAwKSB7ICIgIDwtIG5ldWVzdGUiIH0g
|
||||
ZWxzZSB7ICIiIH0KICAgIFdyaXRlLUhvc3QgKCIgIFt7MH1dIHsxfSAgKHsyfSl7M30iIC1mICRp
|
||||
LCAkcy5OYW1lLCAkc2l6ZSwgJHRhZykKICAgICRpKysKfQpXcml0ZS1Ib3N0ICIiCiRjID0gUmVh
|
||||
ZC1Ib3N0ICJOdW1tZXIgZGVyIFNpY2hlcnVuZyB3w6RobGVuIChFbnRlciA9IG5ldWVzdGUgWzBd
|
||||
KSIKaWYgKCRjIC1lcSAnJykgeyAkYyA9ICcwJyB9CmlmICgkYyAtbm90bWF0Y2ggJ15cZCskJyAt
|
||||
b3IgW2ludF0kYyAtZ2UgJHNuYXBzLkNvdW50KSB7CiAgICBXcml0ZS1Ib3N0ICJVbmfDvGx0aWdl
|
||||
IEF1c3dhaGwuIEFiZ2Vicm9jaGVuLiIgLUZvcmVncm91bmRDb2xvciBZZWxsb3cKICAgIHJldHVy
|
||||
bgp9CiRjaG9zZW4gPSAkc25hcHNbW2ludF0kY10KJHppcCAgICA9ICRjaG9zZW4uRnVsbE5hbWUK
|
||||
CiMgSW50ZWdyaXTDpHQgZGVyIFNpY2hlcnVuZyBwcsO8ZmVuLCBCRVZPUiBpcmdlbmRldHdhcyBl
|
||||
cnNldHp0IHdpcmQKQWRkLVR5cGUgLUFzc2VtYmx5TmFtZSBTeXN0ZW0uSU8uQ29tcHJlc3Npb24u
|
||||
RmlsZVN5c3RlbQp0cnkgewogICAgJHogPSBbU3lzdGVtLklPLkNvbXByZXNzaW9uLlppcEZpbGVd
|
||||
OjpPcGVuUmVhZCgkemlwKQogICAgJG51bGwgPSAkei5FbnRyaWVzLkNvdW50CiAgICAkei5EaXNw
|
||||
b3NlKCkKfSBjYXRjaCB7CiAgICBXcml0ZS1Ib3N0ICJGRUhMRVI6IFNpY2hlcnVuZyBpc3QgYmVz
|
||||
Y2jDpGRpZ3Qg4oCUIFJvbGxiYWNrIGFiZ2Vicm9jaGVuOiAkemlwIiAtRm9yZWdyb3VuZENvbG9y
|
||||
IFJlZAogICAgcmV0dXJuCn0KCldyaXRlLUhvc3QgIiIKJHluID0gUmVhZC1Ib3N0ICJTdGFuZCAn
|
||||
JCgkY2hvc2VuLk5hbWUpJyB3aWVkZXJoZXJzdGVsbGVuPyBEZXIgYWt0dWVsbGUgU3RhbmQgd2ly
|
||||
ZCBlcnNldHp0ISBbai9OXSIKaWYgKCR5biAtbm90aW4gJ2onLCdKJywneScsJ1knKSB7IFdyaXRl
|
||||
LUhvc3QgIkFiZ2Vicm9jaGVuLiI7IHJldHVybiB9CgojIFNlcnZlciBzdG9wcGVuCldyaXRlLUhv
|
||||
c3QgIlN0b3BwZSBTZXJ2ZXIgLi4uIgppZiAoJF9zdG9wTmFtZSAtbmUgJycpIHsKICAgICRzcCA9
|
||||
IEpvaW4tUGF0aCAkcm9vdCAkX3N0b3BOYW1lCiAgICBpZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0
|
||||
aCAkc3ApIHsgJiBjbWQgL2MgImAiJHNwYCIiOyBTdGFydC1TbGVlcCAtU2Vjb25kcyAyIH0KICAg
|
||||
IGVsc2UgeyBXcml0ZS1Ib3N0ICIgIChTdG9wLVNrcmlwdCAnJF9zdG9wTmFtZScgbmljaHQgZ2Vm
|
||||
dW5kZW4g4oCUIMO8YmVyc3BydW5nZW4pIiAtRm9yZWdyb3VuZENvbG9yIERhcmtZZWxsb3cgfQp9
|
||||
IGVsc2UgeyBXcml0ZS1Ib3N0ICIgIChLZWluIFN0b3AtU2tyaXB0IGtvbmZpZ3VyaWVydCDigJQg
|
||||
w7xiZXJzcHJ1bmdlbikiIC1Gb3JlZ3JvdW5kQ29sb3IgRGFya1llbGxvdyB9CgojIEFrdHVlbGxl
|
||||
biBTdGFuZCBiZWlzZWl0ZSB2ZXJzY2hpZWJlbiAoU2ljaGVyaGVpdHNuZXR6LCBrZWluIERhdGVu
|
||||
dmVybHVzdCkKJGFzaWRlID0gSm9pbi1QYXRoICRiayAoIl92b3Itcm9sbGJhY2stIiArIChHZXQt
|
||||
RGF0ZSAtRm9ybWF0ICd5eXl5TU1kZC1ISG1tc3MnKSkKTmV3LUl0ZW0gLUl0ZW1UeXBlIERpcmVj
|
||||
dG9yeSAtUGF0aCAkYXNpZGUgLUZvcmNlIHwgT3V0LU51bGwKR2V0LUNoaWxkSXRlbSAtTGl0ZXJh
|
||||
bFBhdGggJHJvb3QgLUZvcmNlIHwgV2hlcmUtT2JqZWN0IHsgJF9leGNsIC1ub3Rjb250YWlucyAk
|
||||
Xy5OYW1lIH0gfCBGb3JFYWNoLU9iamVjdCB7CiAgICBNb3ZlLUl0ZW0gLUxpdGVyYWxQYXRoICRf
|
||||
LkZ1bGxOYW1lIC1EZXN0aW5hdGlvbiAoSm9pbi1QYXRoICRhc2lkZSAkXy5OYW1lKSAtRm9yY2UK
|
||||
fQoKIyBTaWNoZXJ1bmcgd2llZGVyaGVyc3RlbGxlbgp0cnkgewogICAgRXhwYW5kLUFyY2hpdmUg
|
||||
LUxpdGVyYWxQYXRoICR6aXAgLURlc3RpbmF0aW9uUGF0aCAkcm9vdCAtRm9yY2UKICAgIFdyaXRl
|
||||
LUhvc3QgIlN0YW5kIHdpZWRlcmhlcmdlc3RlbGx0OiAkKCRjaG9zZW4uTmFtZSkiIC1Gb3JlZ3Jv
|
||||
dW5kQ29sb3IgR3JlZW4KfSBjYXRjaCB7CiAgICBXcml0ZS1Ib3N0ICJGRUhMRVIgYmVpbSBXaWVk
|
||||
ZXJoZXJzdGVsbGVuIOKAlCBtYWNoZSDDhG5kZXJ1bmcgcsO8Y2tnw6RuZ2lnIC4uLiIgLUZvcmVn
|
||||
cm91bmRDb2xvciBSZWQKICAgIEdldC1DaGlsZEl0ZW0gLUxpdGVyYWxQYXRoICRyb290IC1Gb3Jj
|
||||
ZSB8IFdoZXJlLU9iamVjdCB7ICRfZXhjbCAtbm90Y29udGFpbnMgJF8uTmFtZSB9IHwKICAgICAg
|
||||
ICBSZW1vdmUtSXRlbSAtUmVjdXJzZSAtRm9yY2UgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGlu
|
||||
dWUKICAgIEdldC1DaGlsZEl0ZW0gLUxpdGVyYWxQYXRoICRhc2lkZSAtRm9yY2UgfCBGb3JFYWNo
|
||||
LU9iamVjdCB7CiAgICAgICAgTW92ZS1JdGVtIC1MaXRlcmFsUGF0aCAkXy5GdWxsTmFtZSAtRGVz
|
||||
dGluYXRpb24gKEpvaW4tUGF0aCAkcm9vdCAkXy5OYW1lKSAtRm9yY2UKICAgIH0KICAgIFdyaXRl
|
||||
LUhvc3QgIlZvcmhlcmlnZXIgWnVzdGFuZCB3aWVkZXJoZXJnZXN0ZWxsdCDigJQga2VpbiBEYXRl
|
||||
bnZlcmx1c3QuIiAtRm9yZWdyb3VuZENvbG9yIFllbGxvdwogICAgcmV0dXJuCn0KCiMgQmVpc2Vp
|
||||
dGUtT3JkbmVyIGF1ZnLDpHVtZW46IG51ciBkaWUgbGV0enRlbiAyIGJlaGFsdGVuCkdldC1DaGls
|
||||
ZEl0ZW0gLUxpdGVyYWxQYXRoICRiayAtRGlyZWN0b3J5IC1GaWx0ZXIgJ192b3Itcm9sbGJhY2st
|
||||
KicgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUgfAogICAgU29ydC1PYmplY3QgTmFtZSAt
|
||||
RGVzY2VuZGluZyB8IFNlbGVjdC1PYmplY3QgLVNraXAgMiB8CiAgICBSZW1vdmUtSXRlbSAtUmVj
|
||||
dXJzZSAtRm9yY2UgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUKCiMgU2VydmVyIHN0YXJ0
|
||||
ZW4KJHN0cCA9IEpvaW4tUGF0aCAkcm9vdCAkX3N0YXJ0TmFtZQppZiAoVGVzdC1QYXRoIC1MaXRl
|
||||
cmFsUGF0aCAkc3RwKSB7CiAgICBTdGFydC1Qcm9jZXNzIC1GaWxlUGF0aCAnY21kLmV4ZScgLUFy
|
||||
Z3VtZW50TGlzdCAiL2MgYCIkc3RwYCIiIC1XaW5kb3dTdHlsZSBIaWRkZW4KICAgIFdyaXRlLUhv
|
||||
c3QgIlNlcnZlciBnZXN0YXJ0ZXQuIiAtRm9yZWdyb3VuZENvbG9yIEdyZWVuCn0gZWxzZSB7CiAg
|
||||
ICBXcml0ZS1Ib3N0ICJTdGFydC1Ta3JpcHQgJyRfc3RhcnROYW1lJyBuaWNodCBnZWZ1bmRlbiDi
|
||||
gJQgYml0dGUgU2VydmVyIG1hbnVlbGwgc3RhcnRlbi4iIC1Gb3JlZ3JvdW5kQ29sb3IgWWVsbG93
|
||||
Cn0KCldyaXRlLUhvc3QgIiIKV3JpdGUtSG9zdCAiPT09IFJvbGxiYWNrIGFiZ2VzY2hsb3NzZW4g
|
||||
PT09IiAtRm9yZWdyb3VuZENvbG9yIEdyZWVuCldyaXRlLUhvc3QgIiAgICBXaWVkZXJoZXJnZXN0
|
||||
ZWxsdDogJCgkY2hvc2VuLk5hbWUpIiAtRm9yZWdyb3VuZENvbG9yIEN5YW4K
|
||||
### FILE: server.ps1 | 52721
|
||||
IyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
|
||||
PT09PT09PT09PT09PT09PT09PT09PQojIEQuUi5JLlYuRS4gUG9ydGFsIHYxLjAgLSBMb2thbGVy
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
e5f1fe817b91b5d9643ea7c77df0ce71db31dfc731aa2800300f57109f5a0034 sync-bundle-01.txt
|
||||
58c85e2b8f475288c0c441cf3bdb91c55ae8e9d0c159fbccb189e276fb6a6509 sync-bundle-02.txt
|
||||
4cc212461953ad756f99f812fd093b90b1dfb2f45c1b0ca4080c73aa077d4c17 sync-bundle-03.txt
|
||||
a2969b7e51352f303e6c1dd45824b4547f7c9c790516ae7218494a280c94f64e sync-bundle-04.txt
|
||||
595b27a8ecffded3850dc6808ee22b2564e00bdade317196dc4a721e760e1705 sync-bundle-05.txt
|
||||
478bbbe43f248720c7bfb5b528443edbe25b609bc748583449082fd1e8357a0b sync-bundle-06.txt
|
||||
456a7ecdfa06bd4fdb8e23c40b5c0c9016b68927e0225e3763dbf0b5dce3a228 sync-bundle-07.txt
|
||||
7a01035e06091884352a146208f5afb618e8c381cae8267fe8360bf7c2cd2554 sync-entpacken.bat
|
||||
@@ -1,4 +1,4 @@
|
||||
# 144 Dateien in 7 Bundles
|
||||
# 143 Dateien in 7 Bundles
|
||||
sync-bundle-01.txt FLD_Planung.bat
|
||||
sync-bundle-01.txt Images/fussball/1._FC_Heidenheim.svg
|
||||
sync-bundle-01.txt Images/fussball/1._FC_Koeln.svg
|
||||
@@ -138,7 +138,6 @@ sync-bundle-05.txt js/ui/rte.js
|
||||
sync-bundle-05.txt js/ui/theme-branding.js
|
||||
sync-bundle-05.txt js/ui/toast.js
|
||||
sync-bundle-05.txt js/wochenplan/wochenplan.js
|
||||
sync-bundle-05.txt rollback.bat
|
||||
sync-bundle-06.txt server.ps1
|
||||
sync-bundle-06.txt style.css
|
||||
sync-bundle-06.txt sync-worker.js
|
||||
|
||||
@@ -11737,96 +11737,3 @@ IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHdpbmRvdy5wcmludCgpOwogICAg
|
||||
ICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5y
|
||||
ZW1vdmUoJ2RydWNrZW4td29jaGVucGxhbicpOyB9LCA1MDApOwogICAgICAgIH0sIDgwKTsKICAg
|
||||
IH0pOwp9Cg==
|
||||
### FILE: rollback.bat | 5226
|
||||
QGVjaG8gb2ZmCnNldGxvY2FsCnNldCAiQkRJUj0lfmRwMCIKZWNoby4KZWNobyAgPT09IEZMRC1T
|
||||
Y2hpY2h0cGxhbnVuZzogUm9sbGJhY2sgKG9mZmxpbmUpID09PQplY2hvICBTdGVsbHQgZGVuIFN0
|
||||
YW5kIHZvciBkZW0gbGV0enRlbiBVcGRhdGUgd2llZGVyIGhlci4KZWNoby4KcG93ZXJzaGVsbCAt
|
||||
Tm9Qcm9maWxlIC1FeGVjdXRpb25Qb2xpY3kgQnlwYXNzIC1Db21tYW5kICIkbT0nIyMjIFBTJysn
|
||||
Q09ERSAjIyMnOyRtZT1bSU8uRmlsZV06OlJlYWRBbGxUZXh0KCclfmYwJyk7JHA9JG1lLkluZGV4
|
||||
T2YoJG0pOyRubD0kbWUuSW5kZXhPZihbY2hhcl0xMCwkcCk7JHJvb3Q9JGVudjpCRElSLlRyaW1F
|
||||
bmQoJ1wnKTskc3RvcEJhdD0nJzskc3RhcnRCYXQ9J0ZMRF9QbGFudW5nLmJhdCc7SW52b2tlLUV4
|
||||
cHJlc3Npb24gJG1lLlN1YnN0cmluZygkbmwrMSkiCmVjaG8uCnBhdXNlCmV4aXQgL2IKIyMjIFBT
|
||||
Q09ERSAjIyMKJEVycm9yQWN0aW9uUHJlZmVyZW5jZSA9ICdTdG9wJwojIEVyd2FydGV0IGltIFNj
|
||||
b3BlOiAkcm9vdCwgJHN0b3BCYXQsICRzdGFydEJhdAokX3N0b3BOYW1lICA9IGlmICgkbnVsbCAt
|
||||
bmUgJHN0b3BCYXQpICB7ICRzdG9wQmF0IH0gIGVsc2UgeyAnc3RvcC5iYXQnIH0KJF9zdGFydE5h
|
||||
bWUgPSBpZiAoJG51bGwgLW5lICRzdGFydEJhdCkgeyAkc3RhcnRCYXQgfSBlbHNlIHsgJ2RnbC5i
|
||||
YXQnIH0KCiMgQXVzc2NobHVzc2xpc3RlIChpZGVudGlzY2ggenUgdXBkYXRlLnBzMSk6IC5iYWNr
|
||||
dXAgbmllIGFuZmFzc2VuLCBwbHVzIGdyb8OfZQojIENvbnRlbnQtT3JkbmVyIGF1cyAuYmFja3Vw
|
||||
aWdub3JlIOKAlCBkaWVzZSBibGVpYmVuIGJlaW0gUm9sbGJhY2sgdW52ZXLDpG5kZXJ0LgokX2V4
|
||||
Y2wgPSBAKCcuYmFja3VwJykKJF9pZ25vcmVGaWxlID0gSm9pbi1QYXRoICRyb290ICcuYmFja3Vw
|
||||
aWdub3JlJwppZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkX2lnbm9yZUZpbGUpIHsKICAgICRf
|
||||
ZXh0cmEgPSBAKEdldC1Db250ZW50IC1MaXRlcmFsUGF0aCAkX2lnbm9yZUZpbGUgfCBGb3JFYWNo
|
||||
LU9iamVjdCB7ICRfLlRyaW0oKSB9IHwKICAgICAgICAgICAgICAgIFdoZXJlLU9iamVjdCB7ICRf
|
||||
IC1uZSAnJyAtYW5kIC1ub3QgJF8uU3RhcnRzV2l0aCgnIycpIH0pCiAgICAkX2V4Y2wgPSAkX2V4
|
||||
Y2wgKyAkX2V4dHJhCn0KJF9leGNsID0gQCgkX2V4Y2wpICAgIyBzdHJpa3QgYWxzIEFycmF5ICh2
|
||||
ZXJoaW5kZXJ0IFNrYWxhci1FbnRwYWNrdW5nKQoKJGJrID0gSm9pbi1QYXRoICRyb290ICcuYmFj
|
||||
a3VwJwppZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkYmspKSB7CiAgICBXcml0ZS1I
|
||||
b3N0ICJLZWluIEJhY2t1cC1WZXJ6ZWljaG5pcyBnZWZ1bmRlbi4gU2ljaGVydW5nZW4gZW50c3Rl
|
||||
aGVuIGF1dG9tYXRpc2NoIGJlaW0gZXJzdGVuIFVwZGF0ZS4iIC1Gb3JlZ3JvdW5kQ29sb3IgUmVk
|
||||
CiAgICByZXR1cm4KfQokc25hcHMgPSBHZXQtQ2hpbGRJdGVtIC1MaXRlcmFsUGF0aCAkYmsgLUZp
|
||||
bHRlciAnc25hcHNob3QtKi56aXAnIC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlIHwgU29y
|
||||
dC1PYmplY3QgTmFtZSAtRGVzY2VuZGluZwppZiAoLW5vdCAkc25hcHMpIHsKICAgIFdyaXRlLUhv
|
||||
c3QgIktlaW5lIFNpY2hlcnVuZ2VuIHZvcmhhbmRlbi4gU2ljaGVydW5nZW4gZW50c3RlaGVuIGF1
|
||||
dG9tYXRpc2NoIGJlaW0gZXJzdGVuIFVwZGF0ZS4iIC1Gb3JlZ3JvdW5kQ29sb3IgUmVkCiAgICBy
|
||||
ZXR1cm4KfQoKV3JpdGUtSG9zdCAiIgpXcml0ZS1Ib3N0ICJWZXJmw7xnYmFyZSBTaWNoZXJ1bmdl
|
||||
biAobmV1ZXN0ZSB6dWVyc3QpOiIgLUZvcmVncm91bmRDb2xvciBDeWFuCiRpID0gMApmb3JlYWNo
|
||||
ICgkcyBpbiAkc25hcHMpIHsKICAgICRzaXplID0gJ3swOk4xfSBNQicgLWYgKCRzLkxlbmd0aCAv
|
||||
IDFNQikKICAgICR0YWcgID0gaWYgKCRpIC1lcSAwKSB7ICIgIDwtIG5ldWVzdGUiIH0gZWxzZSB7
|
||||
ICIiIH0KICAgIFdyaXRlLUhvc3QgKCIgIFt7MH1dIHsxfSAgKHsyfSl7M30iIC1mICRpLCAkcy5O
|
||||
YW1lLCAkc2l6ZSwgJHRhZykKICAgICRpKysKfQpXcml0ZS1Ib3N0ICIiCiRjID0gUmVhZC1Ib3N0
|
||||
ICJOdW1tZXIgZGVyIFNpY2hlcnVuZyB3w6RobGVuIChFbnRlciA9IG5ldWVzdGUgWzBdKSIKaWYg
|
||||
KCRjIC1lcSAnJykgeyAkYyA9ICcwJyB9CmlmICgkYyAtbm90bWF0Y2ggJ15cZCskJyAtb3IgW2lu
|
||||
dF0kYyAtZ2UgJHNuYXBzLkNvdW50KSB7CiAgICBXcml0ZS1Ib3N0ICJVbmfDvGx0aWdlIEF1c3dh
|
||||
aGwuIEFiZ2Vicm9jaGVuLiIgLUZvcmVncm91bmRDb2xvciBZZWxsb3cKICAgIHJldHVybgp9CiRj
|
||||
aG9zZW4gPSAkc25hcHNbW2ludF0kY10KJHppcCAgICA9ICRjaG9zZW4uRnVsbE5hbWUKCiMgSW50
|
||||
ZWdyaXTDpHQgZGVyIFNpY2hlcnVuZyBwcsO8ZmVuLCBCRVZPUiBpcmdlbmRldHdhcyBlcnNldHp0
|
||||
IHdpcmQKQWRkLVR5cGUgLUFzc2VtYmx5TmFtZSBTeXN0ZW0uSU8uQ29tcHJlc3Npb24uRmlsZVN5
|
||||
c3RlbQp0cnkgewogICAgJHogPSBbU3lzdGVtLklPLkNvbXByZXNzaW9uLlppcEZpbGVdOjpPcGVu
|
||||
UmVhZCgkemlwKQogICAgJG51bGwgPSAkei5FbnRyaWVzLkNvdW50CiAgICAkei5EaXNwb3NlKCkK
|
||||
fSBjYXRjaCB7CiAgICBXcml0ZS1Ib3N0ICJGRUhMRVI6IFNpY2hlcnVuZyBpc3QgYmVzY2jDpGRp
|
||||
Z3Qg4oCUIFJvbGxiYWNrIGFiZ2Vicm9jaGVuOiAkemlwIiAtRm9yZWdyb3VuZENvbG9yIFJlZAog
|
||||
ICAgcmV0dXJuCn0KCldyaXRlLUhvc3QgIiIKJHluID0gUmVhZC1Ib3N0ICJTdGFuZCAnJCgkY2hv
|
||||
c2VuLk5hbWUpJyB3aWVkZXJoZXJzdGVsbGVuPyBEZXIgYWt0dWVsbGUgU3RhbmQgd2lyZCBlcnNl
|
||||
dHp0ISBbai9OXSIKaWYgKCR5biAtbm90aW4gJ2onLCdKJywneScsJ1knKSB7IFdyaXRlLUhvc3Qg
|
||||
IkFiZ2Vicm9jaGVuLiI7IHJldHVybiB9CgojIFNlcnZlciBzdG9wcGVuCldyaXRlLUhvc3QgIlN0
|
||||
b3BwZSBTZXJ2ZXIgLi4uIgppZiAoJF9zdG9wTmFtZSAtbmUgJycpIHsKICAgICRzcCA9IEpvaW4t
|
||||
UGF0aCAkcm9vdCAkX3N0b3BOYW1lCiAgICBpZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkc3Ap
|
||||
IHsgJiBjbWQgL2MgImAiJHNwYCIiOyBTdGFydC1TbGVlcCAtU2Vjb25kcyAyIH0KICAgIGVsc2Ug
|
||||
eyBXcml0ZS1Ib3N0ICIgIChTdG9wLVNrcmlwdCAnJF9zdG9wTmFtZScgbmljaHQgZ2VmdW5kZW4g
|
||||
4oCUIMO8YmVyc3BydW5nZW4pIiAtRm9yZWdyb3VuZENvbG9yIERhcmtZZWxsb3cgfQp9IGVsc2Ug
|
||||
eyBXcml0ZS1Ib3N0ICIgIChLZWluIFN0b3AtU2tyaXB0IGtvbmZpZ3VyaWVydCDigJQgw7xiZXJz
|
||||
cHJ1bmdlbikiIC1Gb3JlZ3JvdW5kQ29sb3IgRGFya1llbGxvdyB9CgojIEFrdHVlbGxlbiBTdGFu
|
||||
ZCBiZWlzZWl0ZSB2ZXJzY2hpZWJlbiAoU2ljaGVyaGVpdHNuZXR6LCBrZWluIERhdGVudmVybHVz
|
||||
dCkKJGFzaWRlID0gSm9pbi1QYXRoICRiayAoIl92b3Itcm9sbGJhY2stIiArIChHZXQtRGF0ZSAt
|
||||
Rm9ybWF0ICd5eXl5TU1kZC1ISG1tc3MnKSkKTmV3LUl0ZW0gLUl0ZW1UeXBlIERpcmVjdG9yeSAt
|
||||
UGF0aCAkYXNpZGUgLUZvcmNlIHwgT3V0LU51bGwKR2V0LUNoaWxkSXRlbSAtTGl0ZXJhbFBhdGgg
|
||||
JHJvb3QgLUZvcmNlIHwgV2hlcmUtT2JqZWN0IHsgJF9leGNsIC1ub3Rjb250YWlucyAkXy5OYW1l
|
||||
IH0gfCBGb3JFYWNoLU9iamVjdCB7CiAgICBNb3ZlLUl0ZW0gLUxpdGVyYWxQYXRoICRfLkZ1bGxO
|
||||
YW1lIC1EZXN0aW5hdGlvbiAoSm9pbi1QYXRoICRhc2lkZSAkXy5OYW1lKSAtRm9yY2UKfQoKIyBT
|
||||
aWNoZXJ1bmcgd2llZGVyaGVyc3RlbGxlbgp0cnkgewogICAgRXhwYW5kLUFyY2hpdmUgLUxpdGVy
|
||||
YWxQYXRoICR6aXAgLURlc3RpbmF0aW9uUGF0aCAkcm9vdCAtRm9yY2UKICAgIFdyaXRlLUhvc3Qg
|
||||
IlN0YW5kIHdpZWRlcmhlcmdlc3RlbGx0OiAkKCRjaG9zZW4uTmFtZSkiIC1Gb3JlZ3JvdW5kQ29s
|
||||
b3IgR3JlZW4KfSBjYXRjaCB7CiAgICBXcml0ZS1Ib3N0ICJGRUhMRVIgYmVpbSBXaWVkZXJoZXJz
|
||||
dGVsbGVuIOKAlCBtYWNoZSDDhG5kZXJ1bmcgcsO8Y2tnw6RuZ2lnIC4uLiIgLUZvcmVncm91bmRD
|
||||
b2xvciBSZWQKICAgIEdldC1DaGlsZEl0ZW0gLUxpdGVyYWxQYXRoICRyb290IC1Gb3JjZSB8IFdo
|
||||
ZXJlLU9iamVjdCB7ICRfZXhjbCAtbm90Y29udGFpbnMgJF8uTmFtZSB9IHwKICAgICAgICBSZW1v
|
||||
dmUtSXRlbSAtUmVjdXJzZSAtRm9yY2UgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUKICAg
|
||||
IEdldC1DaGlsZEl0ZW0gLUxpdGVyYWxQYXRoICRhc2lkZSAtRm9yY2UgfCBGb3JFYWNoLU9iamVj
|
||||
dCB7CiAgICAgICAgTW92ZS1JdGVtIC1MaXRlcmFsUGF0aCAkXy5GdWxsTmFtZSAtRGVzdGluYXRp
|
||||
b24gKEpvaW4tUGF0aCAkcm9vdCAkXy5OYW1lKSAtRm9yY2UKICAgIH0KICAgIFdyaXRlLUhvc3Qg
|
||||
IlZvcmhlcmlnZXIgWnVzdGFuZCB3aWVkZXJoZXJnZXN0ZWxsdCDigJQga2VpbiBEYXRlbnZlcmx1
|
||||
c3QuIiAtRm9yZWdyb3VuZENvbG9yIFllbGxvdwogICAgcmV0dXJuCn0KCiMgQmVpc2VpdGUtT3Jk
|
||||
bmVyIGF1ZnLDpHVtZW46IG51ciBkaWUgbGV0enRlbiAyIGJlaGFsdGVuCkdldC1DaGlsZEl0ZW0g
|
||||
LUxpdGVyYWxQYXRoICRiayAtRGlyZWN0b3J5IC1GaWx0ZXIgJ192b3Itcm9sbGJhY2stKicgLUVy
|
||||
cm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUgfAogICAgU29ydC1PYmplY3QgTmFtZSAtRGVzY2Vu
|
||||
ZGluZyB8IFNlbGVjdC1PYmplY3QgLVNraXAgMiB8CiAgICBSZW1vdmUtSXRlbSAtUmVjdXJzZSAt
|
||||
Rm9yY2UgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUKCiMgU2VydmVyIHN0YXJ0ZW4KJHN0
|
||||
cCA9IEpvaW4tUGF0aCAkcm9vdCAkX3N0YXJ0TmFtZQppZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0
|
||||
aCAkc3RwKSB7CiAgICBTdGFydC1Qcm9jZXNzIC1GaWxlUGF0aCAnY21kLmV4ZScgLUFyZ3VtZW50
|
||||
TGlzdCAiL2MgYCIkc3RwYCIiIC1XaW5kb3dTdHlsZSBIaWRkZW4KICAgIFdyaXRlLUhvc3QgIlNl
|
||||
cnZlciBnZXN0YXJ0ZXQuIiAtRm9yZWdyb3VuZENvbG9yIEdyZWVuCn0gZWxzZSB7CiAgICBXcml0
|
||||
ZS1Ib3N0ICJTdGFydC1Ta3JpcHQgJyRfc3RhcnROYW1lJyBuaWNodCBnZWZ1bmRlbiDigJQgYml0
|
||||
dGUgU2VydmVyIG1hbnVlbGwgc3RhcnRlbi4iIC1Gb3JlZ3JvdW5kQ29sb3IgWWVsbG93Cn0KCldy
|
||||
aXRlLUhvc3QgIiIKV3JpdGUtSG9zdCAiPT09IFJvbGxiYWNrIGFiZ2VzY2hsb3NzZW4gPT09IiAt
|
||||
Rm9yZWdyb3VuZENvbG9yIEdyZWVuCldyaXRlLUhvc3QgIiAgICBXaWVkZXJoZXJnZXN0ZWxsdDog
|
||||
JCgkY2hvc2VuLk5hbWUpIiAtRm9yZWdyb3VuZENvbG9yIEN5YW4K
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
0eaeaeadf1c298b6d17fc2ad236a061a832e305815a6398d36d78b98779c3e49 sync-bundle-01.txt
|
||||
b917548cba1a6a6ada3bf6c71107e9c3496664b65777194eb50340c73fb79597 sync-entpacken.bat
|
||||
@@ -1,4 +1,4 @@
|
||||
# 41 Dateien in 1 Bundles
|
||||
# 40 Dateien in 1 Bundles
|
||||
sync-bundle-01.txt Synchron_test.html
|
||||
sync-bundle-01.txt VERSION
|
||||
sync-bundle-01.txt assets/css/portal.css
|
||||
@@ -39,4 +39,3 @@ sync-bundle-01.txt helfer/Portal-Pflege-starten.bat
|
||||
sync-bundle-01.txt helfer/hol_bao_medien.ps1
|
||||
sync-bundle-01.txt helfer/portal_helfer.ps1
|
||||
sync-bundle-01.txt index.html
|
||||
sync-bundle-01.txt rollback.bat
|
||||
|
||||
@@ -13409,95 +13409,3 @@ dCIpOwogICAgc2V0KCJiYW8taWMiLCAic2hpZWxkIik7CiAgICB2YXIgZXQgPSBkb2N1bWVudC5n
|
||||
ZXRFbGVtZW50QnlJZCgiZWRpdC10YWciKTsgaWYgKGV0KSBldC5pbnNlcnRBZGphY2VudEhUTUwo
|
||||
ImFmdGVyYmVnaW4iLCBQLmljKCJlZGl0IikgKyAiICIpOwogIH0pKCk7Cjwvc2NyaXB0Pgo8L2Jv
|
||||
ZHk+CjwvaHRtbD4K
|
||||
### FILE: rollback.bat | 5145
|
||||
QGVjaG8gb2ZmCnNldGxvY2FsCnNldCAiQkRJUj0lfmRwMCIKZWNoby4KZWNobyAgPT09IFBvcnRh
|
||||
bCBVbmlvbjogUm9sbGJhY2sgKG9mZmxpbmUpID09PQplY2hvICBTdGVsbHQgZGVuIFN0YW5kIHZv
|
||||
ciBkZW0gbGV0enRlbiBVcGRhdGUgd2llZGVyIGhlci4KZWNoby4KcG93ZXJzaGVsbCAtTm9Qcm9m
|
||||
aWxlIC1FeGVjdXRpb25Qb2xpY3kgQnlwYXNzIC1Db21tYW5kICIkbT0nIyMjIFBTJysnQ09ERSAj
|
||||
IyMnOyRtZT1bSU8uRmlsZV06OlJlYWRBbGxUZXh0KCclfmYwJyk7JHA9JG1lLkluZGV4T2YoJG0p
|
||||
OyRubD0kbWUuSW5kZXhPZihbY2hhcl0xMCwkcCk7JHJvb3Q9JGVudjpCRElSLlRyaW1FbmQoJ1wn
|
||||
KTskc3RvcEJhdD0nSGVsZmVyLWJlZW5kZW4uYmF0Jzskc3RhcnRCYXQ9J1BvcnRhbC1QZmxlZ2Ut
|
||||
c3RhcnRlbi5iYXQnO0ludm9rZS1FeHByZXNzaW9uICRtZS5TdWJzdHJpbmcoJG5sKzEpIgplY2hv
|
||||
LgpwYXVzZQpleGl0IC9iCiMjIyBQU0NPREUgIyMjCiRFcnJvckFjdGlvblByZWZlcmVuY2UgPSAn
|
||||
U3RvcCcKIyBFcndhcnRldCBpbSBTY29wZTogJHJvb3QsICRzdG9wQmF0LCAkc3RhcnRCYXQKJF9z
|
||||
dG9wTmFtZSAgPSBpZiAoJG51bGwgLW5lICRzdG9wQmF0KSAgeyAkc3RvcEJhdCB9ICBlbHNlIHsg
|
||||
J3N0b3AuYmF0JyB9CiRfc3RhcnROYW1lID0gaWYgKCRudWxsIC1uZSAkc3RhcnRCYXQpIHsgJHN0
|
||||
YXJ0QmF0IH0gZWxzZSB7ICdkZ2wuYmF0JyB9CgojIEF1c3NjaGx1c3NsaXN0ZSAoaWRlbnRpc2No
|
||||
IHp1IHVwZGF0ZS5wczEpOiAuYmFja3VwIG5pZSBhbmZhc3NlbiwgcGx1cyBncm/Dn2UKIyBDb250
|
||||
ZW50LU9yZG5lciBhdXMgLmJhY2t1cGlnbm9yZSDigJQgZGllc2UgYmxlaWJlbiBiZWltIFJvbGxi
|
||||
YWNrIHVudmVyw6RuZGVydC4KJF9leGNsID0gQCgnLmJhY2t1cCcpCiRfaWdub3JlRmlsZSA9IEpv
|
||||
aW4tUGF0aCAkcm9vdCAnLmJhY2t1cGlnbm9yZScKaWYgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGgg
|
||||
JF9pZ25vcmVGaWxlKSB7CiAgICAkX2V4Y2wgKz0gKEdldC1Db250ZW50IC1MaXRlcmFsUGF0aCAk
|
||||
X2lnbm9yZUZpbGUgfCBGb3JFYWNoLU9iamVjdCB7ICRfLlRyaW0oKSB9IHwKICAgICAgICAgICAg
|
||||
ICAgV2hlcmUtT2JqZWN0IHsgJF8gLW5lICcnIC1hbmQgLW5vdCAkXy5TdGFydHNXaXRoKCcjJykg
|
||||
fSkKfQoKJGJrID0gSm9pbi1QYXRoICRyb290ICcuYmFja3VwJwppZiAoLW5vdCAoVGVzdC1QYXRo
|
||||
IC1MaXRlcmFsUGF0aCAkYmspKSB7CiAgICBXcml0ZS1Ib3N0ICJLZWluIEJhY2t1cC1WZXJ6ZWlj
|
||||
aG5pcyBnZWZ1bmRlbi4gU2ljaGVydW5nZW4gZW50c3RlaGVuIGF1dG9tYXRpc2NoIGJlaW0gZXJz
|
||||
dGVuIFVwZGF0ZS4iIC1Gb3JlZ3JvdW5kQ29sb3IgUmVkCiAgICByZXR1cm4KfQokc25hcHMgPSBH
|
||||
ZXQtQ2hpbGRJdGVtIC1MaXRlcmFsUGF0aCAkYmsgLUZpbHRlciAnc25hcHNob3QtKi56aXAnIC1F
|
||||
cnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlIHwgU29ydC1PYmplY3QgTmFtZSAtRGVzY2VuZGlu
|
||||
ZwppZiAoLW5vdCAkc25hcHMpIHsKICAgIFdyaXRlLUhvc3QgIktlaW5lIFNpY2hlcnVuZ2VuIHZv
|
||||
cmhhbmRlbi4gU2ljaGVydW5nZW4gZW50c3RlaGVuIGF1dG9tYXRpc2NoIGJlaW0gZXJzdGVuIFVw
|
||||
ZGF0ZS4iIC1Gb3JlZ3JvdW5kQ29sb3IgUmVkCiAgICByZXR1cm4KfQoKV3JpdGUtSG9zdCAiIgpX
|
||||
cml0ZS1Ib3N0ICJWZXJmw7xnYmFyZSBTaWNoZXJ1bmdlbiAobmV1ZXN0ZSB6dWVyc3QpOiIgLUZv
|
||||
cmVncm91bmRDb2xvciBDeWFuCiRpID0gMApmb3JlYWNoICgkcyBpbiAkc25hcHMpIHsKICAgICRz
|
||||
aXplID0gJ3swOk4xfSBNQicgLWYgKCRzLkxlbmd0aCAvIDFNQikKICAgICR0YWcgID0gaWYgKCRp
|
||||
IC1lcSAwKSB7ICIgIDwtIG5ldWVzdGUiIH0gZWxzZSB7ICIiIH0KICAgIFdyaXRlLUhvc3QgKCIg
|
||||
IFt7MH1dIHsxfSAgKHsyfSl7M30iIC1mICRpLCAkcy5OYW1lLCAkc2l6ZSwgJHRhZykKICAgICRp
|
||||
KysKfQpXcml0ZS1Ib3N0ICIiCiRjID0gUmVhZC1Ib3N0ICJOdW1tZXIgZGVyIFNpY2hlcnVuZyB3
|
||||
w6RobGVuIChFbnRlciA9IG5ldWVzdGUgWzBdKSIKaWYgKCRjIC1lcSAnJykgeyAkYyA9ICcwJyB9
|
||||
CmlmICgkYyAtbm90bWF0Y2ggJ15cZCskJyAtb3IgW2ludF0kYyAtZ2UgJHNuYXBzLkNvdW50KSB7
|
||||
CiAgICBXcml0ZS1Ib3N0ICJVbmfDvGx0aWdlIEF1c3dhaGwuIEFiZ2Vicm9jaGVuLiIgLUZvcmVn
|
||||
cm91bmRDb2xvciBZZWxsb3cKICAgIHJldHVybgp9CiRjaG9zZW4gPSAkc25hcHNbW2ludF0kY10K
|
||||
JHppcCAgICA9ICRjaG9zZW4uRnVsbE5hbWUKCiMgSW50ZWdyaXTDpHQgZGVyIFNpY2hlcnVuZyBw
|
||||
csO8ZmVuLCBCRVZPUiBpcmdlbmRldHdhcyBlcnNldHp0IHdpcmQKQWRkLVR5cGUgLUFzc2VtYmx5
|
||||
TmFtZSBTeXN0ZW0uSU8uQ29tcHJlc3Npb24uRmlsZVN5c3RlbQp0cnkgewogICAgJHogPSBbU3lz
|
||||
dGVtLklPLkNvbXByZXNzaW9uLlppcEZpbGVdOjpPcGVuUmVhZCgkemlwKQogICAgJG51bGwgPSAk
|
||||
ei5FbnRyaWVzLkNvdW50CiAgICAkei5EaXNwb3NlKCkKfSBjYXRjaCB7CiAgICBXcml0ZS1Ib3N0
|
||||
ICJGRUhMRVI6IFNpY2hlcnVuZyBpc3QgYmVzY2jDpGRpZ3Qg4oCUIFJvbGxiYWNrIGFiZ2Vicm9j
|
||||
aGVuOiAkemlwIiAtRm9yZWdyb3VuZENvbG9yIFJlZAogICAgcmV0dXJuCn0KCldyaXRlLUhvc3Qg
|
||||
IiIKJHluID0gUmVhZC1Ib3N0ICJTdGFuZCAnJCgkY2hvc2VuLk5hbWUpJyB3aWVkZXJoZXJzdGVs
|
||||
bGVuPyBEZXIgYWt0dWVsbGUgU3RhbmQgd2lyZCBlcnNldHp0ISBbai9OXSIKaWYgKCR5biAtbm90
|
||||
aW4gJ2onLCdKJywneScsJ1knKSB7IFdyaXRlLUhvc3QgIkFiZ2Vicm9jaGVuLiI7IHJldHVybiB9
|
||||
CgojIFNlcnZlciBzdG9wcGVuCldyaXRlLUhvc3QgIlN0b3BwZSBTZXJ2ZXIgLi4uIgppZiAoJF9z
|
||||
dG9wTmFtZSAtbmUgJycpIHsKICAgICRzcCA9IEpvaW4tUGF0aCAkcm9vdCAkX3N0b3BOYW1lCiAg
|
||||
ICBpZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkc3ApIHsgJiBjbWQgL2MgImAiJHNwYCIiOyBT
|
||||
dGFydC1TbGVlcCAtU2Vjb25kcyAyIH0KICAgIGVsc2UgeyBXcml0ZS1Ib3N0ICIgIChTdG9wLVNr
|
||||
cmlwdCAnJF9zdG9wTmFtZScgbmljaHQgZ2VmdW5kZW4g4oCUIMO8YmVyc3BydW5nZW4pIiAtRm9y
|
||||
ZWdyb3VuZENvbG9yIERhcmtZZWxsb3cgfQp9IGVsc2UgeyBXcml0ZS1Ib3N0ICIgIChLZWluIFN0
|
||||
b3AtU2tyaXB0IGtvbmZpZ3VyaWVydCDigJQgw7xiZXJzcHJ1bmdlbikiIC1Gb3JlZ3JvdW5kQ29s
|
||||
b3IgRGFya1llbGxvdyB9CgojIEFrdHVlbGxlbiBTdGFuZCBiZWlzZWl0ZSB2ZXJzY2hpZWJlbiAo
|
||||
U2ljaGVyaGVpdHNuZXR6LCBrZWluIERhdGVudmVybHVzdCkKJGFzaWRlID0gSm9pbi1QYXRoICRi
|
||||
ayAoIl92b3Itcm9sbGJhY2stIiArIChHZXQtRGF0ZSAtRm9ybWF0ICd5eXl5TU1kZC1ISG1tc3Mn
|
||||
KSkKTmV3LUl0ZW0gLUl0ZW1UeXBlIERpcmVjdG9yeSAtUGF0aCAkYXNpZGUgLUZvcmNlIHwgT3V0
|
||||
LU51bGwKR2V0LUNoaWxkSXRlbSAtTGl0ZXJhbFBhdGggJHJvb3QgLUZvcmNlIHwgV2hlcmUtT2Jq
|
||||
ZWN0IHsgJF9leGNsIC1ub3Rjb250YWlucyAkXy5OYW1lIH0gfCBGb3JFYWNoLU9iamVjdCB7CiAg
|
||||
ICBNb3ZlLUl0ZW0gLUxpdGVyYWxQYXRoICRfLkZ1bGxOYW1lIC1EZXN0aW5hdGlvbiAoSm9pbi1Q
|
||||
YXRoICRhc2lkZSAkXy5OYW1lKSAtRm9yY2UKfQoKIyBTaWNoZXJ1bmcgd2llZGVyaGVyc3RlbGxl
|
||||
bgp0cnkgewogICAgRXhwYW5kLUFyY2hpdmUgLUxpdGVyYWxQYXRoICR6aXAgLURlc3RpbmF0aW9u
|
||||
UGF0aCAkcm9vdCAtRm9yY2UKICAgIFdyaXRlLUhvc3QgIlN0YW5kIHdpZWRlcmhlcmdlc3RlbGx0
|
||||
OiAkKCRjaG9zZW4uTmFtZSkiIC1Gb3JlZ3JvdW5kQ29sb3IgR3JlZW4KfSBjYXRjaCB7CiAgICBX
|
||||
cml0ZS1Ib3N0ICJGRUhMRVIgYmVpbSBXaWVkZXJoZXJzdGVsbGVuIOKAlCBtYWNoZSDDhG5kZXJ1
|
||||
bmcgcsO8Y2tnw6RuZ2lnIC4uLiIgLUZvcmVncm91bmRDb2xvciBSZWQKICAgIEdldC1DaGlsZEl0
|
||||
ZW0gLUxpdGVyYWxQYXRoICRyb290IC1Gb3JjZSB8IFdoZXJlLU9iamVjdCB7ICRfZXhjbCAtbm90
|
||||
Y29udGFpbnMgJF8uTmFtZSB9IHwKICAgICAgICBSZW1vdmUtSXRlbSAtUmVjdXJzZSAtRm9yY2Ug
|
||||
LUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUKICAgIEdldC1DaGlsZEl0ZW0gLUxpdGVyYWxQ
|
||||
YXRoICRhc2lkZSAtRm9yY2UgfCBGb3JFYWNoLU9iamVjdCB7CiAgICAgICAgTW92ZS1JdGVtIC1M
|
||||
aXRlcmFsUGF0aCAkXy5GdWxsTmFtZSAtRGVzdGluYXRpb24gKEpvaW4tUGF0aCAkcm9vdCAkXy5O
|
||||
YW1lKSAtRm9yY2UKICAgIH0KICAgIFdyaXRlLUhvc3QgIlZvcmhlcmlnZXIgWnVzdGFuZCB3aWVk
|
||||
ZXJoZXJnZXN0ZWxsdCDigJQga2VpbiBEYXRlbnZlcmx1c3QuIiAtRm9yZWdyb3VuZENvbG9yIFll
|
||||
bGxvdwogICAgcmV0dXJuCn0KCiMgQmVpc2VpdGUtT3JkbmVyIGF1ZnLDpHVtZW46IG51ciBkaWUg
|
||||
bGV0enRlbiAyIGJlaGFsdGVuCkdldC1DaGlsZEl0ZW0gLUxpdGVyYWxQYXRoICRiayAtRGlyZWN0
|
||||
b3J5IC1GaWx0ZXIgJ192b3Itcm9sbGJhY2stKicgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGlu
|
||||
dWUgfAogICAgU29ydC1PYmplY3QgTmFtZSAtRGVzY2VuZGluZyB8IFNlbGVjdC1PYmplY3QgLVNr
|
||||
aXAgMiB8CiAgICBSZW1vdmUtSXRlbSAtUmVjdXJzZSAtRm9yY2UgLUVycm9yQWN0aW9uIFNpbGVu
|
||||
dGx5Q29udGludWUKCiMgU2VydmVyIHN0YXJ0ZW4KJHN0cCA9IEpvaW4tUGF0aCAkcm9vdCAkX3N0
|
||||
YXJ0TmFtZQppZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkc3RwKSB7CiAgICBTdGFydC1Qcm9j
|
||||
ZXNzIC1GaWxlUGF0aCAnY21kLmV4ZScgLUFyZ3VtZW50TGlzdCAiL2MgYCIkc3RwYCIiIC1XaW5k
|
||||
b3dTdHlsZSBIaWRkZW4KICAgIFdyaXRlLUhvc3QgIlNlcnZlciBnZXN0YXJ0ZXQuIiAtRm9yZWdy
|
||||
b3VuZENvbG9yIEdyZWVuCn0gZWxzZSB7CiAgICBXcml0ZS1Ib3N0ICJTdGFydC1Ta3JpcHQgJyRf
|
||||
c3RhcnROYW1lJyBuaWNodCBnZWZ1bmRlbiDigJQgYml0dGUgU2VydmVyIG1hbnVlbGwgc3RhcnRl
|
||||
bi4iIC1Gb3JlZ3JvdW5kQ29sb3IgWWVsbG93Cn0KCldyaXRlLUhvc3QgIiIKV3JpdGUtSG9zdCAi
|
||||
PT09IFJvbGxiYWNrIGFiZ2VzY2hsb3NzZW4gPT09IiAtRm9yZWdyb3VuZENvbG9yIEdyZWVuCldy
|
||||
aXRlLUhvc3QgIiAgICBXaWVkZXJoZXJnZXN0ZWxsdDogJCgkY2hvc2VuLk5hbWUpIiAtRm9yZWdy
|
||||
b3VuZENvbG9yIEN5YW4K
|
||||
|
||||
@@ -1,51 +0,0 @@
|
||||
## v1.4.5
|
||||
|
||||
**Behoben**
|
||||
- Mitarbeitende **ohne** Berechtigung für Statistik, Logbuch oder Administration bekamen beim Öffnen der Planung im Hintergrund einen Fehler, weil die Seite auf einen gesperrten Bereich zugreifen wollte. Die Planung lädt jetzt für alle sauber.
|
||||
- Wenn für SuperUser/Gesamtverantwortliche ein offener Hinweis vorlag (der rote Balken oben), ließ sich die Planung nicht mehr bis ganz nach unten scrollen. Das ist behoben.
|
||||
- Beim Öffnen der Browser-Entwicklerwerkzeuge entstand eine unnötige Fehlermeldung im Server-Protokoll. Das Protokoll wird unverändert weitergeschrieben — nur die Fehlmeldung entfällt.
|
||||
- Die Planungstabelle lässt sich jetzt mit dem Mausrad **überall** scrollen — auch wenn der Zeiger über der Namensspalte (links) liegt. Vorher reagierte nur das eigentliche Schichtenfeld.
|
||||
|
||||
**Geändert**
|
||||
- Offene Hinweise erscheinen nicht mehr als roter Kopfbalken, sondern öffnen sich beim Anmelden in einem Fenster. Dort lassen sich alle oder einzelne Hinweise „zur Kenntnis nehmen" oder **aufschieben**. Aufgeschobene Hinweise bleiben am roten Zähler neben dem Namen (oben rechts) sichtbar, und das Fenster öffnet sich beim nächsten Anmelden von selbst wieder.
|
||||
|
||||
## v1.4.4
|
||||
|
||||
**Behoben**
|
||||
- Update-Prüfung hinter dem Behörden-Proxy: Der Server konnte das Update-Repository nicht erreichen („Proxyauthentifizierung erforderlich") — der Update-Check und das Einspielen funktionieren jetzt.
|
||||
- „Update installieren" lief auf dem Produktiv-Server auf einen Fehler (500). Der Updater findet jetzt zuverlässig die richtige Programm-Ablage und startet sauber.
|
||||
- Die angezeigte aktuelle Version war fälschlich „0.0.0", wodurch immer ein Update vorgeschlagen wurde. Es wird jetzt die echte installierte Version angezeigt.
|
||||
|
||||
**Neu**
|
||||
- Selbsttest („laufen alle Funktionen?") prüft zusätzlich, ob das Update-System bereitsteht und ob die Live-Daten am richtigen Ort gefunden werden.
|
||||
|
||||
## v1.4.3
|
||||
|
||||
**Neu**
|
||||
- Update-Bereich in der Administration: prüft auf neue Versionen, sichert automatisch vollständig und führt nach dem Einspielen einen Selbsttest aus, bevor das System wieder freigegeben wird.
|
||||
- Dieser Änderungsverlauf wird vor jedem Update angezeigt, damit klar ist, was sich ändert.
|
||||
|
||||
**Behoben**
|
||||
- Bestätigungsdialoge (z. B. „Alle zur Kenntnis nehmen") erschienen hinter offenen Fenstern und ließen sich nicht bedienen — sie liegen jetzt korrekt im Vordergrund.
|
||||
|
||||
# Änderungsverlauf — VI3 DGL-Planung
|
||||
|
||||
Diese Hinweise werden den Admins **vor** der Installation im Update-Bereich angezeigt.
|
||||
Neueste Version steht oben. Pro Version kurz und verständlich beschreiben, **was** sich ändert.
|
||||
|
||||
## v1.4.3
|
||||
|
||||
**Neu**
|
||||
- Update-Bereich in der Administration: prüft auf neue Versionen, sichert automatisch vollständig und führt nach dem Einspielen einen Selbsttest aus, bevor das System wieder freigegeben wird.
|
||||
- Dieser Änderungsverlauf wird vor jedem Update angezeigt, damit klar ist, was sich ändert.
|
||||
|
||||
**Behoben**
|
||||
- Bestätigungsdialoge (z. B. „Alle zur Kenntnis nehmen") erschienen hinter offenen Fenstern und ließen sich nicht bedienen — sie liegen jetzt korrekt im Vordergrund.
|
||||
|
||||
## v1.4.2
|
||||
|
||||
- Wartungsupdate, interne Korrekturen.
|
||||
|
||||
## v1.4.1
|
||||
|
||||
- Wartungsupdate.
|
||||
@@ -1,6 +0,0 @@
|
||||
3bf6c933d322d4016ce015a1f9a8caccc9f14ea38efefc4c95258e2928ba1cf4 sync-bundle-01.txt
|
||||
0fa67c68a2db905415d5980796e22f364d5557ee411d82d462566f2966db606e sync-bundle-02.txt
|
||||
fca4ebd7bf7e8d8f8b7eb3b860aff6129942c24f447847b43f565fd5895e37e2 sync-bundle-03.txt
|
||||
34a06c58c9eec3fe4766ba6e98bd4540fa4d98ff1c36c713a90c6c39d487b4bd sync-bundle-04.txt
|
||||
f3395812768ce6904f89ca1b9e2e96c1fd2c8896e5c92671a442dbb282b02f11 sync-bundle-05.txt
|
||||
5eb48ce445514b1898f2a33dda9250a31087ddc1a0d98028af13c2eb8653212d sync-entpacken.bat
|
||||
+1
-5
@@ -1,9 +1,7 @@
|
||||
# 79 Dateien in 5 Bundles
|
||||
# 75 Dateien in 5 Bundles
|
||||
sync-bundle-01.txt VERSION
|
||||
sync-bundle-01.txt Wochenplan.template.html
|
||||
sync-bundle-01.txt app.js
|
||||
sync-bundle-01.txt check.bat
|
||||
sync-bundle-01.txt check.ps1
|
||||
sync-bundle-01.txt data/mainframe.html
|
||||
sync-bundle-01.txt data/sanitizer.html
|
||||
sync-bundle-01.txt dgl.bat
|
||||
@@ -68,7 +66,6 @@ sync-bundle-03.txt js/sync.js
|
||||
sync-bundle-03.txt js/ui_dialog.js
|
||||
sync-bundle-03.txt js/ui_rte.js
|
||||
sync-bundle-03.txt js/wochenplan.js
|
||||
sync-bundle-03.txt rollback.bat
|
||||
sync-bundle-03.txt server.ps1
|
||||
sync-bundle-03.txt stop.bat
|
||||
sync-bundle-03.txt style.css
|
||||
@@ -76,5 +73,4 @@ sync-bundle-03.txt sync-check.html
|
||||
sync-bundle-04.txt sync-check.js
|
||||
sync-bundle-04.txt sync-manifest.json
|
||||
sync-bundle-04.txt sync-worker.js
|
||||
sync-bundle-04.txt update.bat
|
||||
sync-bundle-05.txt xlsx.full.min.js
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
1.4.5
|
||||
1.4.2
|
||||
|
||||
+2514
-2899
File diff suppressed because it is too large
Load Diff
+2683
-2764
File diff suppressed because it is too large
Load Diff
+7169
-7472
File diff suppressed because it is too large
Load Diff
+23
-32
@@ -615,15 +615,15 @@ ICAgIFEoJyNidG4tc3RhcnQnKS5kaXNhYmxlZCA9IGZhbHNlOwogIH0pOwp9CgpRKCcjYnRuLXN0
|
||||
YXJ0JykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBzdGFydCk7Ci8vIEF1dG8tU3RhcnQgYmVp
|
||||
bSBPZWZmbmVuCnN0YXJ0KCk7Cg==
|
||||
### FILE: sync-manifest.json | 6024
|
||||
ewogICJnZW5lcmllcnQiOiAgIjIwMjYtMDYtMjNUMTE6NTg6MThaIiwKICAiYnJhbmNoIjogICAg
|
||||
ICJtYWluIiwKICAiY29tbWl0IjogICAgICI3NTI2MzA1IiwKICAiYWxnb3JpdGhtdXMiOiJzaGEy
|
||||
NTYiLAogICJkYXRlaWVuIjogewogICAgIldvY2hlbnBsYW4uaHRtbCI6IHsgInNoYTI1NiI6ICJl
|
||||
NWE3MWQ2NTkyYzU0OTNlNzM0NzUwY2I5NTRiZmE3OGYxZTE4NDZhZTUwYzYzN2U1YTBlMjVjMjA0
|
||||
NTYxNmI2IiwgImJ5dGVzIjogMjE1Mjc2IH0sCiAgICAiV29jaGVucGxhbi50ZW1wbGF0ZS5odG1s
|
||||
ewogICJnZW5lcmllcnQiOiAgIjIwMjYtMDYtMjBUMDg6MTg6NTlaIiwKICAiYnJhbmNoIjogICAg
|
||||
ICJtYWluIiwKICAiY29tbWl0IjogICAgICIyOWU1ZTgxIiwKICAiYWxnb3JpdGhtdXMiOiJzaGEy
|
||||
NTYiLAogICJkYXRlaWVuIjogewogICAgIldvY2hlbnBsYW4uaHRtbCI6IHsgInNoYTI1NiI6ICIz
|
||||
MDY4NDMxMjU3NDBjOGJmMjgxY2RkN2VlMTZiMmEyNDI1ZWU2NDBkNDdhOGNkYWVkNzE2OWMwOGY4
|
||||
OWIzOGQwIiwgImJ5dGVzIjogMjE0OTM1IH0sCiAgICAiV29jaGVucGxhbi50ZW1wbGF0ZS5odG1s
|
||||
IjogeyAic2hhMjU2IjogIjM4NjM0OGFhZjgxN2FmYjA1MmRlZGU5Nzc5YTljOWM0ZTg5ZGFjMWVh
|
||||
OGRhYjBkMTEyMjdiMjRjNTgyNmIxNDMiLCAiYnl0ZXMiOiAyNjM4MCB9LAogICAgImFwcC5qcyI6
|
||||
IHsgInNoYTI1NiI6ICJkZmIyOGZiMDNmYTAwZTY3MjU0ZGUxOTJkZGQ1YjJjYTYwZjQ5ZGMxODY5
|
||||
N2Y5YzdmYTdjMTNiNjAxNjM5NzQxIiwgImJ5dGVzIjogMTQ5NzU5IH0sCiAgICAiZGlhZ25vc2Uu
|
||||
IHsgInNoYTI1NiI6ICI5NjEzM2VhZDkwMDRhYTNmMDA4MzI2YmFkZWE1ZTY1ZmVmNTRkZDY3YTli
|
||||
ZTVkMjg2MDU1NDFiMDZlM2Y1MzA5IiwgImJ5dGVzIjogMTQzMDk4IH0sCiAgICAiZGlhZ25vc2Uu
|
||||
aHRtbCI6IHsgInNoYTI1NiI6ICIwYmY1MDdjMmZmZTI3NjNkNTE2ZjFhYmZiZDlkOTRlMjI3NDgw
|
||||
OTk5ZTNjY2ZkNDJjNGQ1YjQzZWNmZTg5YjI3IiwgImJ5dGVzIjogMjUzOCB9LAogICAgImRpYWdu
|
||||
b3NlLmpzIjogeyAic2hhMjU2IjogImVjOTBkMDRkZmE2MzZmYjA5MDNlZjE3MTlmOTM4YWQwYmY1
|
||||
@@ -632,9 +632,9 @@ aWNvbi5pY28iOiB7ICJzaGEyNTYiOiAiMjU0Y2Y1NWJkNzQ0ZDAxYTE0NjFkMjM4NzVkN2JkYjI1
|
||||
NDI0MWQ4ZmY4MjZhM2QwY2Y2ZDhkN2MwY2Q1Y2NhYSIsICJieXRlcyI6IDQ0NDMgfSwKICAgICJo
|
||||
ZWFydGJlYXQtd29ya2VyLmpzIjogeyAic2hhMjU2IjogIjEzMDBiNmJhNGU4OWI2MWViYWFmOGY2
|
||||
YTk5OGMyMGM5YTFhNzQ2N2E5ZTc5M2RiMDRhM2Y1NmY1NTk2ZWEyNWEiLCAiYnl0ZXMiOiAyNzUx
|
||||
IH0sCiAgICAiaW5kZXguaHRtbCI6IHsgInNoYTI1NiI6ICIzMzk2NDRiZmQwODFjZGFmNGMzMmJl
|
||||
ODk0NTIxNDc1NmRkZDRjOTdiYmQ2NWI5MjljNjg4NWIzNGQzYzExZjQ3IiwgImJ5dGVzIjogMTMz
|
||||
NTc1IH0sCiAgICAiaW5mby5odG1sIjogeyAic2hhMjU2IjogIjdmMDE2ZjUzZjVjMWQ1YjE3NzUw
|
||||
IH0sCiAgICAiaW5kZXguaHRtbCI6IHsgInNoYTI1NiI6ICJmMjA2M2UxNWVkNjNiZDE3MWE1NmZm
|
||||
ZGQ1NWViYzk5ODIxYjRjNjg2MzlhNTZkMmJkMTBiNWIyYWE5OGU1YTY1IiwgImJ5dGVzIjogMTI5
|
||||
MjExIH0sCiAgICAiaW5mby5odG1sIjogeyAic2hhMjU2IjogIjdmMDE2ZjUzZjVjMWQ1YjE3NzUw
|
||||
MTFlNTlkZTg5MTIzMGU0ZTc3MjAyY2JmOTFiOGVhODRhMTk1OGZlN2M1NzYiLCAiYnl0ZXMiOiAx
|
||||
Mjc2NSB9LAogICAgImpzL2FkbWluLmpzIjogeyAic2hhMjU2IjogIjkyZjEzM2QzMDE0YmM4Nzdi
|
||||
NGUyYTA5ZmNmNjcyZWFhNzNkYTE5ZGNhN2MyZTU0ZTRkZWIxNzMyYjMwYTk4NDUiLCAiYnl0ZXMi
|
||||
@@ -656,9 +656,9 @@ OiB7ICJzaGEyNTYiOiAiYjI4OTNmYTNhZmMyNGQyYjQ0YzI1OTM0NjU3Nzk2NDlhZjliMjA3YmMy
|
||||
NzYxODJhMzMxYzVjMTc4MmZjZjRkNCIsICJieXRlcyI6IDQzMjc4IH0sCiAgICAianMvYWRtaW5f
|
||||
c3RhbmRhcmRyZWNodGUuanMiOiB7ICJzaGEyNTYiOiAiYWU2OTEyMDhmYzk4MmQwMmZlYzhhOGY1
|
||||
ZTliNDBlMDI2MzhmMzdiZWU0NGY0ZDRmZTAxZjdlMTEwNjUyZDU3NCIsICJieXRlcyI6IDkyMzcg
|
||||
fSwKICAgICJqcy9hZG1pbl9zdGF0aXN0aWsuanMiOiB7ICJzaGEyNTYiOiAiN2U5MTQ2ZWUyZjli
|
||||
YmE1NTFjZjRkNzU0MjU5NzQyYWM1NDAyM2ZiY2IyYTM2YWI5M2Y0ZDkzMjUwZDQ0N2YwZSIsICJi
|
||||
eXRlcyI6IDg1NTggfSwKICAgICJqcy9hZG1pbl9zdGF0aXN0aWtfYnVpbGRlci5qcyI6IHsgInNo
|
||||
fSwKICAgICJqcy9hZG1pbl9zdGF0aXN0aWsuanMiOiB7ICJzaGEyNTYiOiAiMDc2NTUxODllMGUx
|
||||
YmE1YWE4ZjMyYzI5M2IzNGJjN2RiZmNiMTUxY2NiY2QxNDlmM2IwODI0MTVmOTg0MTQ3NiIsICJi
|
||||
eXRlcyI6IDgyNTkgfSwKICAgICJqcy9hZG1pbl9zdGF0aXN0aWtfYnVpbGRlci5qcyI6IHsgInNo
|
||||
YTI1NiI6ICI0NGZjYjgyODBiZmQ3MmUwNjUxMDZiNjdkNTBlYzg2NjY2MTZmNWEyOGQ0NTYyZjc1
|
||||
MzVhYzAxNTU1NjQ2MzU1IiwgImJ5dGVzIjogMzA0OTQgfSwKICAgICJqcy9iZXNldHp1bmcuanMi
|
||||
OiB7ICJzaGEyNTYiOiAiZjMxY2NmN2E1NzBkNjQ3MjNlOTVkNjIwZWI2ODY5NmVjODE2ZmUwYjJl
|
||||
@@ -687,21 +687,21 @@ OTNkNmQwYjRjMzJlZTM1Zjg1MmI1NGRlZWU2NjIzYmViNjQ3ODhhMzg1MzhkNjFkNzEyNjQyYjFm
|
||||
NDkwYTA0IiwgImJ5dGVzIjogMzU4OTMgfSwKICAgICJqcy9ncmlkX3JlbmRlci5qcyI6IHsgInNo
|
||||
YTI1NiI6ICIzMTM5ZjZlMmVmZDVjMTE5ZTExMzQ2OTVmZjQyMmIzYzg0YTE0MGUwMjNmZGZjNWVl
|
||||
YTUwNjZlZDZlOWM2YzM2IiwgImJ5dGVzIjogMzcwNjQgfSwKICAgICJqcy9oaW53ZWlzZS5qcyI6
|
||||
IHsgInNoYTI1NiI6ICIxNWVmN2EyOGFkOGViYjM1Y2FlMmE0OWIwYzVlNDAxODliMGU2MTQ1OThm
|
||||
YzI3ODI3YjYwMTZjMDFkMjg5OGIzIiwgImJ5dGVzIjogMTg5MzEgfSwKICAgICJqcy9pbXBvcnRf
|
||||
IHsgInNoYTI1NiI6ICIyYjlmMzY4ZTc4MjE3MWVmMDhlZTk0ZDY1ODkzZDBhZGMyOWZiZjEyN2M1
|
||||
ZWY2MzNjYWZjZTczZTBkOTBjY2E4IiwgImJ5dGVzIjogMTkwNjEgfSwKICAgICJqcy9pbXBvcnRf
|
||||
ZXhjZWwuanMiOiB7ICJzaGEyNTYiOiAiZjJhYTBkNjgyYjY1MWJlMDM4Y2IwY2U4MDc2NDczMDAw
|
||||
YmQxODA5OWU2MzkxMTljNzE0YmQyNjc3NTdiNTM5MCIsICJieXRlcyI6IDkxMjI1IH0sCiAgICAi
|
||||
anMvbG9nYnVjaC5qcyI6IHsgInNoYTI1NiI6ICI0Yjc3MjJkZWZhZDQyYjJkZTM0ZjhhYjJhZWNj
|
||||
OGRhNTUxNDdjZmU3MDkwMDc1YzM1MmViMWRiMDI2YjA2OWZlIiwgImJ5dGVzIjogMzY4NjggfSwK
|
||||
ICAgICJqcy9zY2hpY2h0dGVhbS5qcyI6IHsgInNoYTI1NiI6ICI2Mjk3YWFhNTQ0ZTlmMDYxODRj
|
||||
NjZlYzM3MGMwZTE3Y2UxZDE5NTAwZjI3ODMxZjE2YWVhM2QyMGUyMzhjMDc2IiwgImJ5dGVzIjog
|
||||
NjE2NCB9LAogICAgImpzL3N0YXRpc3Rpay5qcyI6IHsgInNoYTI1NiI6ICI4N2U4MmQxMzY0NTIz
|
||||
NGJiNTlhNGVlMWY3NTIzZTRiZDE1ZTQzZDJiOWEyNWI5ZjJmNjljYzNmMDYxZGIxMTI5IiwgImJ5
|
||||
dGVzIjogMTIxMDQ5IH0sCiAgICAianMvc3RhdGlzdGlrX2NoYXJ0cy5qcyI6IHsgInNoYTI1NiI6
|
||||
NjE2NCB9LAogICAgImpzL3N0YXRpc3Rpay5qcyI6IHsgInNoYTI1NiI6ICJjMzJmMzhjZjQzNzA4
|
||||
MTkyNjQyOTYxNTAzNDEzNmE5NDMwMzc3NWNiMmQxY2E0ZTRlMjFhNmQ5MzY3M2RhODJmIiwgImJ5
|
||||
dGVzIjogMTIyMDM1IH0sCiAgICAianMvc3RhdGlzdGlrX2NoYXJ0cy5qcyI6IHsgInNoYTI1NiI6
|
||||
ICJjOGYzODNjYmIxYTA2YjE0N2JlZmNjNDYyOTdiMmU5YTU3Y2I1YTM0YzRjN2IxYTg0YWU5YWRh
|
||||
OWZiZmU0NzcwIiwgImJ5dGVzIjogMTg1MTEgfSwKICAgICJqcy9zdGF0aXN0aWtfZW5naW5lLmpz
|
||||
IjogeyAic2hhMjU2IjogImMwZTc3Yjg2ZDY5YjFhYWIwOGNhMjI2N2E0ZThiNmVlZmY1OGNjZjQ5
|
||||
N2E3ZDIyMjY2NWMxZmY4MzY5Y2YzODIiLCAiYnl0ZXMiOiAyMTM2OCB9LAogICAgImpzL3N5bmMu
|
||||
IjogeyAic2hhMjU2IjogIjIzYTRhYzc5NTViNTBiYjI0NzY3NjNjMjkyYzAyNGM1OGUxNDA1YjZh
|
||||
NzkzM2E4MTI5MWMwYWY0YTBjNTM3Y2IiLCAiYnl0ZXMiOiAxOTAxMCB9LAogICAgImpzL3N5bmMu
|
||||
anMiOiB7ICJzaGEyNTYiOiAiNWZiYWEwZDU0OTA0NzQ2MGNkYTQzOTFjMzFmZTY5YzE4YzUxNWNi
|
||||
YzhjNDViNDE4ZWNmYmI2MDdhMGQ2MzBiZiIsICJieXRlcyI6IDE5NDc0IH0sCiAgICAianMvdWlf
|
||||
ZGlhbG9nLmpzIjogeyAic2hhMjU2IjogIjk5YTQzM2RkMGJhMDlhNjE5ZDFlZGI5YWMyN2I4YmUw
|
||||
@@ -710,9 +710,9 @@ ImpzL3VpX3J0ZS5qcyI6IHsgInNoYTI1NiI6ICJhMzkzYTY5ZDBlNDI3NWIyMTAwMGEwM2RkZDRi
|
||||
YzU0ODQzMmE5ZjNkNmJmNzQzNWY4MmQ3N2IzZTQ1YzQ0NTYzIiwgImJ5dGVzIjogNjk1MSB9LAog
|
||||
ICAgImpzL3dvY2hlbnBsYW4uanMiOiB7ICJzaGEyNTYiOiAiNGY5MTRmYzg1NDNjYTc2OWM1OWNl
|
||||
OGU3MzdhNDZjMjg2MDdmMDEzYWRkMjY1NzgyZjgzZWMxZDI3NGEzNjgxMiIsICJieXRlcyI6IDE1
|
||||
MjA0IH0sCiAgICAic3R5bGUuY3NzIjogeyAic2hhMjU2IjogIjQyOWZlZmIzNDIyZDE1YzEwNzQy
|
||||
YjhiY2E4ZTU1NDVjMzRjMGVlYjE4MWM5MDFlNzBkOWQ2MWUzZjg3OTE4YTgiLCAiYnl0ZXMiOiAy
|
||||
MzM5MTcgfSwKICAgICJzeW5jLWNoZWNrLmh0bWwiOiB7ICJzaGEyNTYiOiAiMjRkZjA3OTliODVk
|
||||
MjA0IH0sCiAgICAic3R5bGUuY3NzIjogeyAic2hhMjU2IjogIjYzNjkyOWRjMjM4M2I2YjA0OGRk
|
||||
NmFmY2M2NDFjYTc4NDc2MWY4MjU3N2U4NDZiODFiMmJhODdiYzFlNzg5ZDMiLCAiYnl0ZXMiOiAy
|
||||
MzQ1MzIgfSwKICAgICJzeW5jLWNoZWNrLmh0bWwiOiB7ICJzaGEyNTYiOiAiMjRkZjA3OTliODVk
|
||||
NjEyOTFkNWRkZjAyNGExN2M1MzM3OWQ5MGM3OWM5ZGE3MmJhNjlkODEzZTAxNGQ2ZjkyZiIsICJi
|
||||
eXRlcyI6IDQyNDkgfSwKICAgICJzeW5jLWNoZWNrLmpzIjogeyAic2hhMjU2IjogImU2YTM5NTQ0
|
||||
YWFhYjc0NjkxYzA5N2Y5NGYxZDUwMGZhNGU5NWVlNjU4NGI0ZDkwNGViZjk5Nzc3MTc4Njk3NzQi
|
||||
@@ -858,12 +858,3 @@ fQp9OwoKLy8gSW5pdGlhbC1QdWxzIGRpcmVrdCBiZWltIFdvcmtlci1Jbml0ICh2b3IgZGVyIGVy
|
||||
c3RlbiAnc3RhcnQnLU5hY2hyaWNodCkuCi8vIERhbWl0IHNpZWh0IG1haW4gc2Nob24sIGRhc3Mg
|
||||
ZGFzIE1vZHVsIHVlYmVyaGF1cHQgZ2VwYXJzdCB3dXJkZS4Kc2VsZi5wb3N0TWVzc2FnZSh7IHR5
|
||||
cGU6ICdwdWxzJywgdHM6IERhdGUubm93KCksIHBoYXNlOiAnaW5pdCcgfSk7CnN0YXJ0ZW4oKTsK
|
||||
### FILE: update.bat | 402
|
||||
QGVjaG8gb2ZmCmVjaG8uCmVjaG8gPT09IFZJMyBER0wtUGxhbnVuZzogVXBkYXRlID09PQplY2hv
|
||||
Lgpwb3dlcnNoZWxsIC1Ob1Byb2ZpbGUgLUV4ZWN1dGlvblBvbGljeSBCeXBhc3MgLUNvbW1hbmQg
|
||||
XgogICIkcHJvaj0nVkkzREdMJzsgJHJvb3Q9JyV+ZHAwJy5UcmltRW5kKCdcJyk7ICRzdG9wQmF0
|
||||
PSdzdG9wLmJhdCc7ICRzdGFydEJhdD0nZGdsLmJhdCc7IiBeCiAgIiRzPShJbnZva2UtV2ViUmVx
|
||||
dWVzdCAnaHR0cHM6Ly91cGRhdGVzLnJoaW5vLm5ydy9yaGluby9TdGF0dXNRdW9fVXBkYXRlcy9y
|
||||
YXcvYnJhbmNoL21haW4vc2NyaXB0cy91cGRhdGUucHMxJyAtVXNlQmFzaWNQYXJzaW5nIC1UaW1l
|
||||
b3V0U2VjIDMwKS5Db250ZW50OyIgXgogICJJbnZva2UtRXhwcmVzc2lvbiAkcyIKZWNoby4KcGF1
|
||||
c2UK
|
||||
|
||||
@@ -52,8 +52,7 @@ if ($r -eq $true) { $ok++ } elseif ($r -eq $false) { $bad++ }
|
||||
Write-Host ''
|
||||
if ($bad -eq 0) {
|
||||
Write-Host ('FERTIG: ' + $ok + ' Dateien aktualisiert.') -ForegroundColor Green
|
||||
Write-Host 'Jetzt server.ps1 neu starten, dann in der Portal-Wurzel check.bat' -ForegroundColor Green
|
||||
Write-Host 'doppelklicken (Selbsttest "laufen alle Funktionen?") - alles GRUEN = Stand ok.' -ForegroundColor Green
|
||||
Write-Host 'Jetzt server.ps1 neu starten und zur Kontrolle sync-check.html oeffnen.' -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host ('FERTIG mit Warnungen: ' + $ok + ' ok, ' + $bad + ' mit falscher Laenge.') -ForegroundColor Yellow
|
||||
}
|
||||
|
||||
+68
-79
@@ -1,108 +1,97 @@
|
||||
# StatusQuo_Updates/scripts/rollback.ps1
|
||||
# Kanonisches Rollback-Skript (Referenz). rollback.bat enthaelt diese Logik
|
||||
# EINGEBETTET und laeuft vollstaendig OFFLINE. Beachtet .backupignore.
|
||||
# Erwartet im Scope: $root, $stopBat, $startBat
|
||||
|
||||
# Stellt den Stand vor dem letzten Update wieder her.
|
||||
# Erwartet im aufrufenden Scope (wie update.ps1):
|
||||
# $root - Installationspfad
|
||||
# $stopBat - (optional) Stop-Skript-Dateiname oder ''
|
||||
# $startBat - (optional) Start-Skript-Dateiname
|
||||
$ErrorActionPreference = 'Stop'
|
||||
# Erwartet im Scope: $root, $stopBat, $startBat
|
||||
|
||||
$_stopName = if ($null -ne $stopBat) { $stopBat } else { 'stop.bat' }
|
||||
$_startName = if ($null -ne $startBat) { $startBat } else { 'dgl.bat' }
|
||||
|
||||
# Ausschlussliste (identisch zu update.ps1): .backup nie anfassen, plus große
|
||||
# Content-Ordner aus .backupignore — diese bleiben beim Rollback unverändert.
|
||||
$_excl = @('.backup')
|
||||
$_ignoreFile = Join-Path $root '.backupignore'
|
||||
if (Test-Path -LiteralPath $_ignoreFile) {
|
||||
$_extra = @(Get-Content -LiteralPath $_ignoreFile | ForEach-Object { $_.Trim() } |
|
||||
Where-Object { $_ -ne '' -and -not $_.StartsWith('#') })
|
||||
$_excl = $_excl + $_extra
|
||||
}
|
||||
$_excl = @($_excl) # strikt als Array (verhindert Skalar-Entpackung)
|
||||
|
||||
$bk = Join-Path $root '.backup'
|
||||
if (-not (Test-Path -LiteralPath $bk)) {
|
||||
Write-Host "Kein Backup-Verzeichnis gefunden. Sicherungen entstehen automatisch beim ersten Update." -ForegroundColor Red
|
||||
# Verfügbare Backups suchen
|
||||
$_backupBase = Join-Path $root '.backup'
|
||||
if (-not (Test-Path -LiteralPath $_backupBase)) {
|
||||
Write-Host "FEHLER: Kein Backup-Verzeichnis gefunden!" -ForegroundColor Red
|
||||
Write-Host " Gesucht: $_backupBase"
|
||||
Write-Host " Backups werden automatisch beim nächsten Update angelegt."
|
||||
return
|
||||
}
|
||||
$snaps = Get-ChildItem -LiteralPath $bk -Filter 'snapshot-*.zip' -ErrorAction SilentlyContinue | Sort-Object Name -Descending
|
||||
if (-not $snaps) {
|
||||
Write-Host "Keine Sicherungen vorhanden. Sicherungen entstehen automatisch beim ersten Update." -ForegroundColor Red
|
||||
|
||||
$_backups = Get-ChildItem -LiteralPath $_backupBase -Directory |
|
||||
Where-Object { $_.Name -match '^\d{8}-\d{6}$' } | Sort-Object Name -Descending
|
||||
|
||||
if ($_backups.Count -eq 0) {
|
||||
Write-Host "FEHLER: Keine Backups vorhanden." -ForegroundColor Red
|
||||
Write-Host " Backups werden automatisch beim nächsten Update angelegt."
|
||||
return
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "Verfügbare Sicherungen (neueste zuerst):" -ForegroundColor Cyan
|
||||
$i = 0
|
||||
foreach ($s in $snaps) {
|
||||
$size = '{0:N1} MB' -f ($s.Length / 1MB)
|
||||
$tag = if ($i -eq 0) { " <- neueste" } else { "" }
|
||||
Write-Host (" [{0}] {1} ({2}){3}" -f $i, $s.Name, $size, $tag)
|
||||
$i++
|
||||
Write-Host "Verfügbare Backups:" -ForegroundColor Cyan
|
||||
$_i = 0
|
||||
foreach ($bk in $_backups) {
|
||||
$suffix = if ($_i -eq 0) { " ← neuestes" } else { "" }
|
||||
Write-Host (" [{0}] {1}{2}" -f $_i, $bk.Name, $suffix)
|
||||
$_i++
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
$c = Read-Host "Nummer der Sicherung wählen (Enter = neueste [0])"
|
||||
if ($c -eq '') { $c = '0' }
|
||||
if ($c -notmatch '^\d+$' -or [int]$c -ge $snaps.Count) {
|
||||
$_choice = Read-Host "Backup-Nummer wählen (Enter = neuestes [0])"
|
||||
if ($_choice -eq '') { $_choice = '0' }
|
||||
if ($_choice -notmatch '^\d+$' -or [int]$_choice -ge $_backups.Count) {
|
||||
Write-Host "Ungültige Auswahl. Abgebrochen." -ForegroundColor Yellow
|
||||
return
|
||||
}
|
||||
$chosen = $snaps[[int]$c]
|
||||
$zip = $chosen.FullName
|
||||
|
||||
# Integrität der Sicherung prüfen, BEVOR irgendetwas ersetzt wird
|
||||
Add-Type -AssemblyName System.IO.Compression.FileSystem
|
||||
try {
|
||||
$z = [System.IO.Compression.ZipFile]::OpenRead($zip)
|
||||
$null = $z.Entries.Count
|
||||
$z.Dispose()
|
||||
} catch {
|
||||
Write-Host "FEHLER: Sicherung ist beschädigt — Rollback abgebrochen: $zip" -ForegroundColor Red
|
||||
return
|
||||
}
|
||||
|
||||
$_selected = $_backups[[int]$_choice]
|
||||
Write-Host ""
|
||||
$yn = Read-Host "Stand '$($chosen.Name)' wiederherstellen? Der aktuelle Stand wird ersetzt! [j/N]"
|
||||
Write-Host "Stelle wieder her: $($_selected.Name)" -ForegroundColor Yellow
|
||||
|
||||
$yn = Read-Host "Rollback durchführen? Aktuelle Dateien werden überschrieben! [j/N]"
|
||||
if ($yn -notin 'j','J','y','Y') { Write-Host "Abgebrochen."; return }
|
||||
|
||||
# Server stoppen
|
||||
Write-Host "Stoppe Server ..."
|
||||
if ($_stopName -ne '') {
|
||||
$sp = Join-Path $root $_stopName
|
||||
if (Test-Path -LiteralPath $sp) { & cmd /c "`"$sp`""; Start-Sleep -Seconds 2 }
|
||||
else { Write-Host " (Stop-Skript '$_stopName' nicht gefunden — übersprungen)" -ForegroundColor DarkYellow }
|
||||
} else { Write-Host " (Kein Stop-Skript konfiguriert — übersprungen)" -ForegroundColor DarkYellow }
|
||||
|
||||
# Aktuellen Stand beiseite verschieben (Sicherheitsnetz, kein Datenverlust)
|
||||
$aside = Join-Path $bk ("_vor-rollback-" + (Get-Date -Format 'yyyyMMdd-HHmmss'))
|
||||
New-Item -ItemType Directory -Path $aside -Force | Out-Null
|
||||
Get-ChildItem -LiteralPath $root -Force | Where-Object { $_excl -notcontains $_.Name } | ForEach-Object {
|
||||
Move-Item -LiteralPath $_.FullName -Destination (Join-Path $aside $_.Name) -Force
|
||||
}
|
||||
|
||||
# Sicherung wiederherstellen
|
||||
try {
|
||||
Expand-Archive -LiteralPath $zip -DestinationPath $root -Force
|
||||
Write-Host "Stand wiederhergestellt: $($chosen.Name)" -ForegroundColor Green
|
||||
} catch {
|
||||
Write-Host "FEHLER beim Wiederherstellen — mache Änderung rückgängig ..." -ForegroundColor Red
|
||||
Get-ChildItem -LiteralPath $root -Force | Where-Object { $_excl -notcontains $_.Name } |
|
||||
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue
|
||||
Get-ChildItem -LiteralPath $aside -Force | ForEach-Object {
|
||||
Move-Item -LiteralPath $_.FullName -Destination (Join-Path $root $_.Name) -Force
|
||||
$_stopPath = Join-Path $root $_stopName
|
||||
if (Test-Path -LiteralPath $_stopPath) {
|
||||
& cmd /c "`"$_stopPath`""
|
||||
Start-Sleep -Seconds 2
|
||||
} else {
|
||||
Write-Host " (Stop-Skript '$_stopName' nicht gefunden — übersprungen)" -ForegroundColor DarkYellow
|
||||
}
|
||||
Write-Host "Vorheriger Zustand wiederhergestellt — kein Datenverlust." -ForegroundColor Yellow
|
||||
return
|
||||
} else {
|
||||
Write-Host " (Kein Stop-Skript konfiguriert — übersprungen)" -ForegroundColor DarkYellow
|
||||
}
|
||||
|
||||
# Beiseite-Ordner aufräumen: nur die letzten 2 behalten
|
||||
Get-ChildItem -LiteralPath $bk -Directory -Filter '_vor-rollback-*' -ErrorAction SilentlyContinue |
|
||||
Sort-Object Name -Descending | Select-Object -Skip 2 |
|
||||
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue
|
||||
# Nutzerdaten wiederherstellen
|
||||
$_dataBackup = Join-Path $_selected.FullName 'data'
|
||||
if (Test-Path -LiteralPath $_dataBackup) {
|
||||
$dataTarget = Join-Path $root 'data'
|
||||
if (Test-Path -LiteralPath $dataTarget) {
|
||||
# Aktuellen data/-Ordner vor Überschreiben sichern
|
||||
$safeName = "data_vor_rollback_$(Get-Date -Format 'yyyyMMdd-HHmmss')"
|
||||
Rename-Item -LiteralPath $dataTarget -NewName $safeName -ErrorAction SilentlyContinue
|
||||
}
|
||||
Copy-Item -Path $_dataBackup -Destination $dataTarget -Recurse -Force
|
||||
$dataCount = (Get-ChildItem -LiteralPath $dataTarget -Recurse -File -ErrorAction SilentlyContinue).Count
|
||||
Write-Host "Nutzerdaten wiederhergestellt ($dataCount Dateien)." -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host " (Kein Nutzerdaten-Backup in diesem Stand)" -ForegroundColor DarkYellow
|
||||
}
|
||||
|
||||
# Server starten
|
||||
$stp = Join-Path $root $_startName
|
||||
if (Test-Path -LiteralPath $stp) {
|
||||
Start-Process -FilePath 'cmd.exe' -ArgumentList "/c `"$stp`"" -WindowStyle Hidden
|
||||
# Code-Dateien wiederherstellen
|
||||
$_codeFiles = Get-ChildItem -LiteralPath $_selected.FullName -File -ErrorAction SilentlyContinue
|
||||
foreach ($f in $_codeFiles) {
|
||||
Copy-Item -Path $f.FullName -Destination (Join-Path $root $f.Name) -Force
|
||||
}
|
||||
Write-Host "Code-Dateien wiederhergestellt ($($_codeFiles.Count) Dateien)." -ForegroundColor Green
|
||||
|
||||
# Server neu starten
|
||||
$_startPath = Join-Path $root $_startName
|
||||
if (Test-Path -LiteralPath $_startPath) {
|
||||
Start-Process -FilePath 'cmd.exe' -ArgumentList "/c `"$_startPath`"" -WindowStyle Hidden
|
||||
Write-Host "Server gestartet." -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host "Start-Skript '$_startName' nicht gefunden — bitte Server manuell starten." -ForegroundColor Yellow
|
||||
@@ -110,4 +99,4 @@ if (Test-Path -LiteralPath $stp) {
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "=== Rollback abgeschlossen ===" -ForegroundColor Green
|
||||
Write-Host " Wiederhergestellt: $($chosen.Name)" -ForegroundColor Cyan
|
||||
Write-Host " Wiederhergestellt: $($_selected.Name)" -ForegroundColor Cyan
|
||||
|
||||
+88
-163
@@ -2,111 +2,24 @@
|
||||
# Zentraler Updater - wird von update.bat per Invoke-Expression geladen.
|
||||
# Erwartet im aufrufenden Scope:
|
||||
# $proj - Projektname (z.B. 'VI3DGL', 'FLD-Schichtplanung', 'DRIVE', 'Portal_Union')
|
||||
# $root - Installationspfad (Portal-Wurzel mit index.html, VERSION usw.)
|
||||
# $stopBat - (optional) Stop-Skript-Dateiname; ''=kein Stop; nicht gesetzt=Fallback 'stop.bat'
|
||||
# $startBat - (optional) Start-Skript-Dateiname; nicht gesetzt=Fallback 'dgl.bat'
|
||||
#
|
||||
# Strategie: Transaktionales Update mit vollständigem ZIP-Snapshot vor jeder
|
||||
# Änderung. Bei Fehler wird der vorherige Stand automatisch 1:1 wiederhergestellt.
|
||||
# $root - Installationspfad (Verzeichnis mit server.ps1, VERSION usw.)
|
||||
# $stopBat - (optional) Dateiname des Stop-Skripts, z.B. 'DRIVE_Stop.bat'.
|
||||
# Leerstring '' = kein Stop-Schritt. Nicht gesetzt = Fallback auf 'stop.bat'.
|
||||
# $startBat - (optional) Dateiname des Start-Skripts, z.B. 'DRIVE_Start.bat'.
|
||||
# Nicht gesetzt = Fallback auf 'dgl.bat'.
|
||||
$ErrorActionPreference = 'Stop'
|
||||
$DistBase = "https://updates.rhino.nrw/rhino/StatusQuo_Updates/raw/branch/main/$proj"
|
||||
|
||||
# Behoerden-Proxy verlangt Authentifizierung (407) -> dem System-Proxy einmalig
|
||||
# die angemeldeten Windows-Credentials (Negotiate/NTLM des laufenden Benutzers)
|
||||
# mitgeben, sonst scheitert JEDER Download (VERSION/MANIFEST/Bundles/CHECKSUMS)
|
||||
# unten mit '(407) Proxyauthentifizierung erforderlich'. Wirkt global ueber
|
||||
# DefaultWebProxy fuer alle folgenden Invoke-WebRequest-Aufrufe.
|
||||
try {
|
||||
$p = [System.Net.WebRequest]::GetSystemWebProxy()
|
||||
if ($p) {
|
||||
$p.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials
|
||||
[System.Net.WebRequest]::DefaultWebProxy = $p
|
||||
}
|
||||
} catch {}
|
||||
|
||||
# Stop/Start-Namen VOR jeder Ueberschreibung aus dem aufrufenden Scope lesen
|
||||
$_stopName = if ($null -ne $stopBat) { $stopBat } else { 'stop.bat' }
|
||||
$_startName = if ($null -ne $startBat) { $startBat } else { 'dgl.bat' }
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Hilfsfunktionen
|
||||
# ---------------------------------------------------------------------------
|
||||
function Stop-Portal {
|
||||
if ($_stopName -ne '') {
|
||||
$p = Join-Path $root $_stopName
|
||||
if (Test-Path -LiteralPath $p) { & cmd /c "`"$p`""; Start-Sleep -Seconds 2 }
|
||||
else { Write-Host " (Stop-Skript '$_stopName' nicht gefunden — übersprungen)" -ForegroundColor DarkYellow }
|
||||
} else { Write-Host " (Kein Stop-Skript konfiguriert — übersprungen)" -ForegroundColor DarkYellow }
|
||||
}
|
||||
|
||||
function Start-Portal {
|
||||
$p = Join-Path $root $_startName
|
||||
if (Test-Path -LiteralPath $p) {
|
||||
Start-Process -FilePath 'cmd.exe' -ArgumentList "/c `"$p`"" -WindowStyle Hidden
|
||||
Write-Host "Server gestartet." -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host "Start-Skript '$_startName' nicht gefunden — bitte Server manuell starten." -ForegroundColor Yellow
|
||||
}
|
||||
}
|
||||
|
||||
# Ausschlussliste: immer .backup/TempUpdate, plus Einträge aus .backupignore
|
||||
# (große, von Updates NIE berührte Content-Ordner, z.B. _archiv/dokumente).
|
||||
# Ausgeschlossene Ordner werden weder gesichert noch beim Rollback verändert.
|
||||
function Get-ExcludeNames {
|
||||
param([switch]$ForWipe)
|
||||
# WICHTIG: Array strikt als Array aufbauen. 'if (){@(x)}' würde ein
|
||||
# 1-Element-Array zu einem Skalar entpacken → '+=' verkettet dann Strings.
|
||||
$ex = @('.backup')
|
||||
if (-not $ForWipe) { $ex = $ex + 'TempUpdate' }
|
||||
$f = Join-Path $root '.backupignore'
|
||||
if (Test-Path -LiteralPath $f) {
|
||||
$extra = @(Get-Content -LiteralPath $f | ForEach-Object { $_.Trim() } |
|
||||
Where-Object { $_ -ne '' -and -not $_.StartsWith('#') })
|
||||
$ex = $ex + $extra
|
||||
}
|
||||
return $ex
|
||||
}
|
||||
|
||||
# Vollständiger Snapshot der Portal-Wurzel als ein ZIP (außer .backup/TempUpdate
|
||||
# und .backupignore-Einträgen). Erfasst alle Code-Unterordner inkl. data/
|
||||
# → echtes 1:1 des veränderbaren Stands, inkl. später gelöschter Dateien.
|
||||
function New-Snapshot {
|
||||
$ts = Get-Date -Format 'yyyyMMdd-HHmmss'
|
||||
$bk = Join-Path $root '.backup'
|
||||
if (-not (Test-Path -LiteralPath $bk)) { New-Item -ItemType Directory -Path $bk -Force | Out-Null }
|
||||
$zip = Join-Path $bk "snapshot-$ts.zip"
|
||||
$exclude = @(Get-ExcludeNames)
|
||||
$items = Get-ChildItem -LiteralPath $root -Force | Where-Object { $exclude -notcontains $_.Name }
|
||||
if (-not $items) { throw "Portal-Wurzel ist leer — nichts zu sichern." }
|
||||
Compress-Archive -Path $items.FullName -DestinationPath $zip -CompressionLevel Optimal -Force
|
||||
# Integrität prüfen (öffnen + Eintragszahl)
|
||||
Add-Type -AssemblyName System.IO.Compression.FileSystem
|
||||
$z = [System.IO.Compression.ZipFile]::OpenRead($zip)
|
||||
$cnt = $z.Entries.Count
|
||||
$z.Dispose()
|
||||
if ($cnt -lt 1) { throw "Snapshot ist leer/ungültig." }
|
||||
# Aufbewahrung: max. 5 Snapshots
|
||||
Get-ChildItem -LiteralPath $bk -Filter 'snapshot-*.zip' | Sort-Object Name -Descending |
|
||||
Select-Object -Skip 5 | Remove-Item -Force -ErrorAction SilentlyContinue
|
||||
return $zip
|
||||
}
|
||||
|
||||
function Restore-Snapshot {
|
||||
param([string]$Zip)
|
||||
# Wurzel leeren (außer .backup + .backupignore-Ordner), dann Snapshot zurückspielen.
|
||||
# Ausgeschlossene Content-Ordner bleiben unangetastet an Ort und Stelle.
|
||||
$ex = @(Get-ExcludeNames -ForWipe)
|
||||
Get-ChildItem -LiteralPath $root -Force | Where-Object { $ex -notcontains $_.Name } |
|
||||
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue
|
||||
Expand-Archive -LiteralPath $Zip -DestinationPath $root -Force
|
||||
}
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# 1. Versionsvergleich
|
||||
# ---------------------------------------------------------------------------
|
||||
# Lokale Version lesen
|
||||
$localVer = '0.0.0'
|
||||
$verFile = Join-Path $root 'VERSION'
|
||||
if (Test-Path -LiteralPath $verFile) { $localVer = (Get-Content $verFile -Raw).Trim() }
|
||||
|
||||
# Remote-Version abfragen
|
||||
Write-Host "Prüfe Update für $proj ..."
|
||||
try {
|
||||
$remoteVer = (Invoke-WebRequest -Uri "$DistBase/VERSION" -UseBasicParsing -TimeoutSec 15).Content.Trim()
|
||||
@@ -118,26 +31,20 @@ try {
|
||||
Write-Host "Lokal: v$localVer"
|
||||
Write-Host "Remote: v$remoteVer"
|
||||
|
||||
# Nur echtes Upgrade anbieten (kein versehentlicher Downgrade)
|
||||
$isNewer = $false
|
||||
try { $isNewer = ([System.Version]$remoteVer -gt [System.Version]$localVer) }
|
||||
catch { $isNewer = ($remoteVer -ne $localVer) } # nicht-numerische Version: Fallback
|
||||
if (-not $isNewer) {
|
||||
if ($localVer -eq $remoteVer) { Write-Host "Bereits auf aktuellem Stand. Kein Update nötig." -ForegroundColor Green }
|
||||
else { Write-Host "Remote (v$remoteVer) ist nicht neuer als lokal (v$localVer) — kein Update." -ForegroundColor Yellow }
|
||||
if ($localVer -eq $remoteVer) {
|
||||
Write-Host "Bereits auf aktuellem Stand. Kein Update nötig." -ForegroundColor Green
|
||||
return
|
||||
}
|
||||
|
||||
$yn = Read-Host "Update von v$localVer auf v$remoteVer installieren? [j/N]"
|
||||
if ($yn -notin 'j','J','y','Y') { Write-Host "Abgebrochen."; return }
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# 2. Bundles herunterladen (Server läuft noch)
|
||||
# ---------------------------------------------------------------------------
|
||||
# Temp-Ordner
|
||||
$tmp = Join-Path $root 'TempUpdate'
|
||||
Remove-Item $tmp -Recurse -Force -ErrorAction SilentlyContinue
|
||||
New-Item -ItemType Directory -Path $tmp | Out-Null
|
||||
|
||||
# Bundles laden
|
||||
Write-Host "Lade Manifest ..."
|
||||
$manifest = (Invoke-WebRequest -Uri "$DistBase/MANIFEST.txt" -UseBasicParsing -TimeoutSec 30).Content
|
||||
$bundles = ($manifest -split "`n" | Where-Object { $_ -match '^sync-bundle-' } |
|
||||
@@ -150,92 +57,110 @@ foreach ($b in $bundles) {
|
||||
Write-Host " sync-entpacken.bat ..."
|
||||
Invoke-WebRequest -Uri "$DistBase/sync-entpacken.bat" -OutFile (Join-Path $tmp 'sync-entpacken.bat') -UseBasicParsing -TimeoutSec 30
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# 3. Download-Integrität prüfen (SHA256, falls CHECKSUMS.txt vorhanden)
|
||||
# Schützt gegen unvollständige/korrupte Downloads — NICHT gegen manipulierte
|
||||
# Releases (gleicher Kanal). Authentizität = Release-Disziplin + Tests.
|
||||
# ---------------------------------------------------------------------------
|
||||
Write-Host "Verifiziere Download-Integrität ..."
|
||||
# --- CHECKSUMMEN VERIFIZIEREN (optional — wird übersprungen wenn keine CHECKSUMS.txt vorhanden) ---
|
||||
Write-Host "Verifiziere Checksummen ..."
|
||||
try {
|
||||
$chk = (Invoke-WebRequest -Uri "$DistBase/CHECKSUMS.txt" -UseBasicParsing -TimeoutSec 15).Content
|
||||
$chkContent = (Invoke-WebRequest -Uri "$DistBase/CHECKSUMS.txt" -UseBasicParsing -TimeoutSec 15).Content
|
||||
$allOk = $true
|
||||
foreach ($line in ($chk -split "`n")) {
|
||||
foreach ($line in ($chkContent -split "`n")) {
|
||||
$line = $line.Trim()
|
||||
if ($line -eq '' -or $line.StartsWith('#')) { continue }
|
||||
# Format: SHA256HASH filename
|
||||
$parts = $line -split '\s+', 2
|
||||
if ($parts.Count -lt 2) { continue }
|
||||
$expected = $parts[0].ToLower()
|
||||
$filename = $parts[1].Trim().TrimStart('*') # sha256sum nutzt evtl. '*' Prefix
|
||||
$filename = $parts[1].Trim()
|
||||
$localPath = Join-Path $tmp $filename
|
||||
if (-not (Test-Path -LiteralPath $localPath)) { continue }
|
||||
$actual = (Get-FileHash -LiteralPath $localPath -Algorithm SHA256).Hash.ToLower()
|
||||
if ($actual -ne $expected) {
|
||||
Write-Host "FEHLER: Checksumme stimmt nicht für $filename!" -ForegroundColor Red
|
||||
Write-Host " Erwartet: $expected" -ForegroundColor Red
|
||||
Write-Host " Erhalten: $actual" -ForegroundColor Red
|
||||
$allOk = $false
|
||||
}
|
||||
}
|
||||
if (-not $allOk) {
|
||||
Remove-Item $tmp -Recurse -Force -ErrorAction SilentlyContinue
|
||||
Write-Host "Update abgebrochen — keine Datei verändert. Bitte Support kontaktieren." -ForegroundColor Red
|
||||
Write-Host "Update abgebrochen — keine Dateien verändert. Bitte Support kontaktieren." -ForegroundColor Red
|
||||
return
|
||||
}
|
||||
Write-Host " Alle Checksummen OK." -ForegroundColor Green
|
||||
} catch {
|
||||
Write-Host " (Keine CHECKSUMS.txt — Integritätsprüfung übersprungen)" -ForegroundColor DarkGray
|
||||
# CHECKSUMS.txt nicht vorhanden — Prüfung überspringen (abwärtskompatibel)
|
||||
Write-Host " (Keine CHECKSUMS.txt — Prüfung übersprungen)" -ForegroundColor DarkGray
|
||||
}
|
||||
# --- END CHECKSUMMEN ---
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# 4. Server stoppen
|
||||
# ---------------------------------------------------------------------------
|
||||
# Server stoppen
|
||||
Write-Host "Stoppe Server ..."
|
||||
Stop-Portal
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# 5. Snapshot (transaktionssicher: ohne gültiges Backup kein Update)
|
||||
# ---------------------------------------------------------------------------
|
||||
Write-Host "Erstelle vollständige Sicherung ..."
|
||||
try {
|
||||
$snap = New-Snapshot
|
||||
$snapSize = '{0:N1} MB' -f ((Get-Item -LiteralPath $snap).Length / 1MB)
|
||||
Write-Host " Snapshot: $snap ($snapSize)" -ForegroundColor Cyan
|
||||
} catch {
|
||||
Write-Host "FEHLER beim Sichern: $($_.Exception.Message)" -ForegroundColor Red
|
||||
Write-Host "Update abgebrochen — keine Datei verändert. Server wird wieder gestartet." -ForegroundColor Yellow
|
||||
Remove-Item $tmp -Recurse -Force -ErrorAction SilentlyContinue
|
||||
Start-Portal
|
||||
return
|
||||
}
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# 6. Update anwenden — bei Fehler automatischer Rollback
|
||||
# ---------------------------------------------------------------------------
|
||||
Write-Host "Wende Update an ..."
|
||||
try {
|
||||
& cmd /c "`"$(Join-Path $tmp 'sync-entpacken.bat')`""
|
||||
if ($LASTEXITCODE -ne 0) { throw "sync-entpacken.bat meldete Exitcode $LASTEXITCODE" }
|
||||
[System.IO.File]::WriteAllText($verFile, ($remoteVer + "`r`n"), [System.Text.Encoding]::UTF8)
|
||||
} catch {
|
||||
Write-Host "FEHLER beim Anwenden: $($_.Exception.Message)" -ForegroundColor Red
|
||||
Write-Host "Stelle vorherigen Stand automatisch wieder her ..." -ForegroundColor Yellow
|
||||
try {
|
||||
Restore-Snapshot -Zip $snap
|
||||
Write-Host " Vorheriger Stand (v$localVer) wiederhergestellt." -ForegroundColor Green
|
||||
} catch {
|
||||
Write-Host " AUTO-ROLLBACK FEHLGESCHLAGEN! Bitte rollback.bat doppelklicken." -ForegroundColor Red
|
||||
if ($_stopName -ne '') {
|
||||
$_stopPath = Join-Path $root $_stopName
|
||||
if (Test-Path -LiteralPath $_stopPath) {
|
||||
& cmd /c "`"$_stopPath`""
|
||||
Start-Sleep -Seconds 2
|
||||
} else {
|
||||
Write-Host " (Stop-Skript '$_stopName' nicht gefunden — übersprungen)" -ForegroundColor DarkYellow
|
||||
}
|
||||
Remove-Item $tmp -Recurse -Force -ErrorAction SilentlyContinue
|
||||
Start-Portal
|
||||
return
|
||||
} else {
|
||||
Write-Host " (Kein Stop-Skript konfiguriert — übersprungen)" -ForegroundColor DarkYellow
|
||||
}
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# 7. Aufräumen + Start
|
||||
# ---------------------------------------------------------------------------
|
||||
Remove-Item $tmp -Recurse -Force -ErrorAction SilentlyContinue
|
||||
# --- BACKUP (vor jeder Dateiänderung) ---
|
||||
$ts = Get-Date -Format 'yyyyMMdd-HHmmss'
|
||||
$bkDir = Join-Path $root ".backup\$ts"
|
||||
New-Item -ItemType Directory -Path $bkDir -Force | Out-Null
|
||||
|
||||
# 1. Nutzerdaten sichern (kritisch!)
|
||||
$_dataPath = Join-Path $root 'data'
|
||||
if (Test-Path -LiteralPath $_dataPath) {
|
||||
Copy-Item -Path $_dataPath -Destination (Join-Path $bkDir 'data') -Recurse -Force
|
||||
$dataCount = (Get-ChildItem -LiteralPath $_dataPath -Recurse -File -ErrorAction SilentlyContinue).Count
|
||||
Write-Host " Nutzerdaten gesichert ($dataCount Dateien)" -ForegroundColor Cyan
|
||||
} else {
|
||||
Write-Host " (Kein data/-Ordner gefunden — übersprungen)" -ForegroundColor DarkGray
|
||||
}
|
||||
|
||||
# 2. Code-Dateien sichern
|
||||
foreach ($ext in '*.ps1','*.html','*.js','*.css','*.bat','VERSION') {
|
||||
Get-ChildItem -LiteralPath $root -File -Filter $ext -ErrorAction SilentlyContinue |
|
||||
Copy-Item -Destination $bkDir -Force
|
||||
}
|
||||
Write-Host "Backup erstellt: $bkDir" -ForegroundColor Cyan
|
||||
|
||||
# 3. Alte Backups bereinigen (max. 5 behalten)
|
||||
$_backupBase = Join-Path $root '.backup'
|
||||
$_allBackups = Get-ChildItem -LiteralPath $_backupBase -Directory -ErrorAction SilentlyContinue |
|
||||
Where-Object { $_.Name -match '^\d{8}-\d{6}$' } | Sort-Object Name -Descending
|
||||
if ($_allBackups.Count -gt 5) {
|
||||
$_allBackups | Select-Object -Skip 5 | ForEach-Object {
|
||||
Remove-Item -Path $_.FullName -Recurse -Force -ErrorAction SilentlyContinue
|
||||
}
|
||||
Write-Host " (Nur 5 neueste Backups behalten)" -ForegroundColor DarkGray
|
||||
}
|
||||
# --- END BACKUP ---
|
||||
|
||||
# Entpacken (sync-entpacken.bat aus TempUpdate → schreibt in Root eine Ebene hoeher)
|
||||
Write-Host "Entpacke Update-Dateien ..."
|
||||
& cmd /c "`"$(Join-Path $tmp 'sync-entpacken.bat')`""
|
||||
|
||||
# VERSION lokal aktualisieren
|
||||
[System.IO.File]::WriteAllText($verFile, ($remoteVer + "`r`n"), [System.Text.Encoding]::UTF8)
|
||||
Write-Host "Version auf v$remoteVer aktualisiert." -ForegroundColor Green
|
||||
Start-Portal
|
||||
|
||||
# Aufräumen
|
||||
Remove-Item $tmp -Recurse -Force -ErrorAction SilentlyContinue
|
||||
|
||||
# Server neu starten
|
||||
$_startPath = Join-Path $root $_startName
|
||||
if (Test-Path -LiteralPath $_startPath) {
|
||||
Start-Process -FilePath 'cmd.exe' -ArgumentList "/c `"$_startPath`"" -WindowStyle Hidden
|
||||
Write-Host "Server gestartet." -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host "Start-Skript '$_startName' nicht gefunden — bitte Server manuell starten." -ForegroundColor Yellow
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "=== Update abgeschlossen ===" -ForegroundColor Green
|
||||
Write-Host " Sicherung: $snap" -ForegroundColor DarkGray
|
||||
Write-Host " Bei Problemen: rollback.bat doppelklicken (funktioniert auch offline)." -ForegroundColor DarkGray
|
||||
Write-Host " Backup liegt unter: $bkDir" -ForegroundColor DarkGray
|
||||
Write-Host " Bei Problemen: rollback.bat doppelklicken!" -ForegroundColor DarkGray
|
||||
|
||||
Reference in New Issue
Block a user