Compare commits
19 Commits
1486289d45
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 079fa0a7da | |||
| 3d69675654 | |||
| 9a6e0b7143 | |||
| fc6e89668c | |||
| f1050ea3b8 | |||
| f8db1abd65 | |||
| fcbce978d4 | |||
| 86447d49b1 | |||
| 430a1db0a7 | |||
| 8d1f0381bd | |||
| edf6019b45 | |||
| 9628fc2c7b | |||
| 7bdb0b0c13 | |||
| b25354723e | |||
| 64d30948b0 | |||
| 9db5217eec | |||
| f29345c1d1 | |||
| 29a47a758b | |||
| 2ce45c9bb6 |
@@ -1,8 +1,17 @@
|
|||||||
name: Mirror to Public Gitea (updates.rhino.nrw)
|
name: 📦 Veröffentlichen → 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).
|
||||||
on:
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
hinweis:
|
||||||
|
description: "Optional: Version/Notiz (nur fürs Protokoll)"
|
||||||
|
required: false
|
||||||
push:
|
push:
|
||||||
branches: [main]
|
branches: [release]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
mirror:
|
mirror:
|
||||||
@@ -13,7 +22,28 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
- name: Push mirror to Public Gitea
|
- name: CHECKSUMS.txt pro Projekt frisch erzeugen
|
||||||
run: |
|
run: |
|
||||||
git remote add public "http://rhino:${{ secrets.PUBLIC_GITEA_TOKEN }}@172.30.0.4:3053/rhino/StatusQuo_Updates.git"
|
for d in */ ; do
|
||||||
git push public main --force
|
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 }}"
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
b1a4e69eaa33c15a51bc8b082cd305c8d8c3a94a4e4a3f3d5d14040a28221f1e sync-bundle-01.txt
|
||||||
|
ab0a7311b0deb8ad4b59cfbcb91adc7b97e0a8c52658acfd0faf54f90df02047 sync-bundle-02.txt
|
||||||
|
95bdd3993481ac8ec937f1adb09bf1851735619dca2dd4283c7608f13f0e1e7e sync-entpacken.bat
|
||||||
+2
-1
@@ -1,4 +1,4 @@
|
|||||||
# 29 Dateien in 2 Bundles
|
# 30 Dateien in 2 Bundles
|
||||||
sync-bundle-01.txt DRIVE_Start.bat
|
sync-bundle-01.txt DRIVE_Start.bat
|
||||||
sync-bundle-01.txt DRIVE_Stop.bat
|
sync-bundle-01.txt DRIVE_Stop.bat
|
||||||
sync-bundle-01.txt VERSION
|
sync-bundle-01.txt VERSION
|
||||||
@@ -27,4 +27,5 @@ sync-bundle-01.txt data/governance.template.json
|
|||||||
sync-bundle-01.txt data/index.js
|
sync-bundle-01.txt data/index.js
|
||||||
sync-bundle-01.txt favicon.ico
|
sync-bundle-01.txt favicon.ico
|
||||||
sync-bundle-02.txt index.html
|
sync-bundle-02.txt index.html
|
||||||
|
sync-bundle-02.txt rollback.bat
|
||||||
sync-bundle-02.txt server.ps1
|
sync-bundle-02.txt server.ps1
|
||||||
|
|||||||
@@ -9735,6 +9735,99 @@ ICAgIH0sIDE1MDApOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgbG9jYWxT
|
|||||||
dG9yYWdlLnJlbW92ZUl0ZW0oJ2RyaXZlLXJlc3VtZS1kb2MnKTsKICAgICAgICAgICAgfQogICAg
|
dG9yYWdlLnJlbW92ZUl0ZW0oJ2RyaXZlLXJlc3VtZS1kb2MnKTsKICAgICAgICAgICAgfQogICAg
|
||||||
ICAgIH0KICAgIH0gY2F0Y2goZSkgewogICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdk
|
ICAgIH0KICAgIH0gY2F0Y2goZSkgewogICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdk
|
||||||
cml2ZS1yZXN1bWUtZG9jJyk7CiAgICB9Cn0pOwo8L3NjcmlwdD4KCjwvYm9keT4KPC9odG1sPgo=
|
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
|
### FILE: server.ps1 | 52721
|
||||||
IyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
|
IyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
|
||||||
PT09PT09PT09PT09PT09PT09PT09PQojIEQuUi5JLlYuRS4gUG9ydGFsIHYxLjAgLSBMb2thbGVy
|
PT09PT09PT09PT09PT09PT09PT09PQojIEQuUi5JLlYuRS4gUG9ydGFsIHYxLjAgLSBMb2thbGVy
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
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 @@
|
|||||||
# 143 Dateien in 7 Bundles
|
# 144 Dateien in 7 Bundles
|
||||||
sync-bundle-01.txt FLD_Planung.bat
|
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_Heidenheim.svg
|
||||||
sync-bundle-01.txt Images/fussball/1._FC_Koeln.svg
|
sync-bundle-01.txt Images/fussball/1._FC_Koeln.svg
|
||||||
@@ -138,6 +138,7 @@ sync-bundle-05.txt js/ui/rte.js
|
|||||||
sync-bundle-05.txt js/ui/theme-branding.js
|
sync-bundle-05.txt js/ui/theme-branding.js
|
||||||
sync-bundle-05.txt js/ui/toast.js
|
sync-bundle-05.txt js/ui/toast.js
|
||||||
sync-bundle-05.txt js/wochenplan/wochenplan.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 server.ps1
|
||||||
sync-bundle-06.txt style.css
|
sync-bundle-06.txt style.css
|
||||||
sync-bundle-06.txt sync-worker.js
|
sync-bundle-06.txt sync-worker.js
|
||||||
|
|||||||
@@ -11737,3 +11737,96 @@ IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHdpbmRvdy5wcmludCgpOwogICAg
|
|||||||
ICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5y
|
ICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5y
|
||||||
ZW1vdmUoJ2RydWNrZW4td29jaGVucGxhbicpOyB9LCA1MDApOwogICAgICAgIH0sIDgwKTsKICAg
|
ZW1vdmUoJ2RydWNrZW4td29jaGVucGxhbicpOyB9LCA1MDApOwogICAgICAgIH0sIDgwKTsKICAg
|
||||||
IH0pOwp9Cg==
|
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
|
||||||
|
|||||||
@@ -0,0 +1,2 @@
|
|||||||
|
0eaeaeadf1c298b6d17fc2ad236a061a832e305815a6398d36d78b98779c3e49 sync-bundle-01.txt
|
||||||
|
b917548cba1a6a6ada3bf6c71107e9c3496664b65777194eb50340c73fb79597 sync-entpacken.bat
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
# 40 Dateien in 1 Bundles
|
# 41 Dateien in 1 Bundles
|
||||||
sync-bundle-01.txt Synchron_test.html
|
sync-bundle-01.txt Synchron_test.html
|
||||||
sync-bundle-01.txt VERSION
|
sync-bundle-01.txt VERSION
|
||||||
sync-bundle-01.txt assets/css/portal.css
|
sync-bundle-01.txt assets/css/portal.css
|
||||||
@@ -39,3 +39,4 @@ sync-bundle-01.txt helfer/Portal-Pflege-starten.bat
|
|||||||
sync-bundle-01.txt helfer/hol_bao_medien.ps1
|
sync-bundle-01.txt helfer/hol_bao_medien.ps1
|
||||||
sync-bundle-01.txt helfer/portal_helfer.ps1
|
sync-bundle-01.txt helfer/portal_helfer.ps1
|
||||||
sync-bundle-01.txt index.html
|
sync-bundle-01.txt index.html
|
||||||
|
sync-bundle-01.txt rollback.bat
|
||||||
|
|||||||
@@ -13409,3 +13409,95 @@ dCIpOwogICAgc2V0KCJiYW8taWMiLCAic2hpZWxkIik7CiAgICB2YXIgZXQgPSBkb2N1bWVudC5n
|
|||||||
ZXRFbGVtZW50QnlJZCgiZWRpdC10YWciKTsgaWYgKGV0KSBldC5pbnNlcnRBZGphY2VudEhUTUwo
|
ZXRFbGVtZW50QnlJZCgiZWRpdC10YWciKTsgaWYgKGV0KSBldC5pbnNlcnRBZGphY2VudEhUTUwo
|
||||||
ImFmdGVyYmVnaW4iLCBQLmljKCJlZGl0IikgKyAiICIpOwogIH0pKCk7Cjwvc2NyaXB0Pgo8L2Jv
|
ImFmdGVyYmVnaW4iLCBQLmljKCJlZGl0IikgKyAiICIpOwogIH0pKCk7Cjwvc2NyaXB0Pgo8L2Jv
|
||||||
ZHk+CjwvaHRtbD4K
|
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
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
# Ä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.
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
1711cd2ba677122c72301c42d59a0b420c4fdf43ffab8e05b692e374f4229ed0 sync-bundle-01.txt
|
||||||
|
693e870a8bd5c3272c8fa2f12ecae8ac0f0436ce3185772007c83eab72da1dd7 sync-bundle-02.txt
|
||||||
|
eb8544cd9c04d392687792586dd4f31a1b3ff16320f88c47215d2b8c1d4e1d11 sync-bundle-03.txt
|
||||||
|
63c76655fadf2a2104f2351d38d042762302cf5702fb1c67c4cf9624fabc57c2 sync-bundle-04.txt
|
||||||
|
f3395812768ce6904f89ca1b9e2e96c1fd2c8896e5c92671a442dbb282b02f11 sync-bundle-05.txt
|
||||||
|
4aaf26dc578b9a24cd85c81ac907db59f0b343d6119d876f6045b00f2756fe8d sync-entpacken.bat
|
||||||
+2
-1
@@ -1,4 +1,4 @@
|
|||||||
# 75 Dateien in 5 Bundles
|
# 76 Dateien in 5 Bundles
|
||||||
sync-bundle-01.txt VERSION
|
sync-bundle-01.txt VERSION
|
||||||
sync-bundle-01.txt Wochenplan.template.html
|
sync-bundle-01.txt Wochenplan.template.html
|
||||||
sync-bundle-01.txt app.js
|
sync-bundle-01.txt app.js
|
||||||
@@ -66,6 +66,7 @@ sync-bundle-03.txt js/sync.js
|
|||||||
sync-bundle-03.txt js/ui_dialog.js
|
sync-bundle-03.txt js/ui_dialog.js
|
||||||
sync-bundle-03.txt js/ui_rte.js
|
sync-bundle-03.txt js/ui_rte.js
|
||||||
sync-bundle-03.txt js/wochenplan.js
|
sync-bundle-03.txt js/wochenplan.js
|
||||||
|
sync-bundle-03.txt rollback.bat
|
||||||
sync-bundle-03.txt server.ps1
|
sync-bundle-03.txt server.ps1
|
||||||
sync-bundle-03.txt stop.bat
|
sync-bundle-03.txt stop.bat
|
||||||
sync-bundle-03.txt style.css
|
sync-bundle-03.txt style.css
|
||||||
|
|||||||
@@ -6583,6 +6583,99 @@ dGlvbiB3cE5hZWNoc3RlV29jaGUoKSAgeyB3cE9mZnNldCsrOyB3cFJlbmRlcm4oKTsgfQpmdW5j
|
|||||||
dGlvbiB3cEFrdHVlbGxlV29jaGUoKSAgeyB3cE9mZnNldCA9IDA7IHdwUmVuZGVybigpOyB9Cgpl
|
dGlvbiB3cEFrdHVlbGxlV29jaGUoKSAgeyB3cE9mZnNldCA9IDA7IHdwUmVuZGVybigpOyB9Cgpl
|
||||||
eHBvcnQgewogICAgd3BXb2NoZVRhZ2UsIHdwUmVuZGVybiwgcHBSZW5kZXJuLAogICAgd3BWb3J3
|
eHBvcnQgewogICAgd3BXb2NoZVRhZ2UsIHdwUmVuZGVybiwgcHBSZW5kZXJuLAogICAgd3BWb3J3
|
||||||
b2NoZSwgd3BOYWVjaHN0ZVdvY2hlLCB3cEFrdHVlbGxlV29jaGUKfTsK
|
b2NoZSwgd3BOYWVjaHN0ZVdvY2hlLCB3cEFrdHVlbGxlV29jaGUKfTsK
|
||||||
|
### FILE: rollback.bat | 5223
|
||||||
|
QGVjaG8gb2ZmCnNldGxvY2FsCnNldCAiQkRJUj0lfmRwMCIKZWNoby4KZWNobyAgPT09IFZJMyBE
|
||||||
|
R0wtUGxhbnVuZzogUm9sbGJhY2sgKG9mZmxpbmUpID09PQplY2hvICBTdGVsbHQgZGVuIFN0YW5k
|
||||||
|
IHZvciBkZW0gbGV0enRlbiBVcGRhdGUgd2llZGVyIGhlci4KZWNoby4KcG93ZXJzaGVsbCAtTm9Q
|
||||||
|
cm9maWxlIC1FeGVjdXRpb25Qb2xpY3kgQnlwYXNzIC1Db21tYW5kICIkbT0nIyMjIFBTJysnQ09E
|
||||||
|
RSAjIyMnOyRtZT1bSU8uRmlsZV06OlJlYWRBbGxUZXh0KCclfmYwJyk7JHA9JG1lLkluZGV4T2Yo
|
||||||
|
JG0pOyRubD0kbWUuSW5kZXhPZihbY2hhcl0xMCwkcCk7JHJvb3Q9JGVudjpCRElSLlRyaW1FbmQo
|
||||||
|
J1wnKTskc3RvcEJhdD0nc3RvcC5iYXQnOyRzdGFydEJhdD0nZGdsLmJhdCc7SW52b2tlLUV4cHJl
|
||||||
|
c3Npb24gJG1lLlN1YnN0cmluZygkbmwrMSkiCmVjaG8uCnBhdXNlCmV4aXQgL2IKIyMjIFBTQ09E
|
||||||
|
RSAjIyMKJEVycm9yQWN0aW9uUHJlZmVyZW5jZSA9ICdTdG9wJwojIEVyd2FydGV0IGltIFNjb3Bl
|
||||||
|
OiAkcm9vdCwgJHN0b3BCYXQsICRzdGFydEJhdAokX3N0b3BOYW1lICA9IGlmICgkbnVsbCAtbmUg
|
||||||
|
JHN0b3BCYXQpICB7ICRzdG9wQmF0IH0gIGVsc2UgeyAnc3RvcC5iYXQnIH0KJF9zdGFydE5hbWUg
|
||||||
|
PSBpZiAoJG51bGwgLW5lICRzdGFydEJhdCkgeyAkc3RhcnRCYXQgfSBlbHNlIHsgJ2RnbC5iYXQn
|
||||||
|
IH0KCiMgQXVzc2NobHVzc2xpc3RlIChpZGVudGlzY2ggenUgdXBkYXRlLnBzMSk6IC5iYWNrdXAg
|
||||||
|
bmllIGFuZmFzc2VuLCBwbHVzIGdyb8OfZQojIENvbnRlbnQtT3JkbmVyIGF1cyAuYmFja3VwaWdu
|
||||||
|
b3JlIOKAlCBkaWVzZSBibGVpYmVuIGJlaW0gUm9sbGJhY2sgdW52ZXLDpG5kZXJ0LgokX2V4Y2wg
|
||||||
|
PSBAKCcuYmFja3VwJykKJF9pZ25vcmVGaWxlID0gSm9pbi1QYXRoICRyb290ICcuYmFja3VwaWdu
|
||||||
|
b3JlJwppZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkX2lnbm9yZUZpbGUpIHsKICAgICRfZXh0
|
||||||
|
cmEgPSBAKEdldC1Db250ZW50IC1MaXRlcmFsUGF0aCAkX2lnbm9yZUZpbGUgfCBGb3JFYWNoLU9i
|
||||||
|
amVjdCB7ICRfLlRyaW0oKSB9IHwKICAgICAgICAgICAgICAgIFdoZXJlLU9iamVjdCB7ICRfIC1u
|
||||||
|
ZSAnJyAtYW5kIC1ub3QgJF8uU3RhcnRzV2l0aCgnIycpIH0pCiAgICAkX2V4Y2wgPSAkX2V4Y2wg
|
||||||
|
KyAkX2V4dHJhCn0KJF9leGNsID0gQCgkX2V4Y2wpICAgIyBzdHJpa3QgYWxzIEFycmF5ICh2ZXJo
|
||||||
|
aW5kZXJ0IFNrYWxhci1FbnRwYWNrdW5nKQoKJGJrID0gSm9pbi1QYXRoICRyb290ICcuYmFja3Vw
|
||||||
|
JwppZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkYmspKSB7CiAgICBXcml0ZS1Ib3N0
|
||||||
|
ICJLZWluIEJhY2t1cC1WZXJ6ZWljaG5pcyBnZWZ1bmRlbi4gU2ljaGVydW5nZW4gZW50c3RlaGVu
|
||||||
|
IGF1dG9tYXRpc2NoIGJlaW0gZXJzdGVuIFVwZGF0ZS4iIC1Gb3JlZ3JvdW5kQ29sb3IgUmVkCiAg
|
||||||
|
ICByZXR1cm4KfQokc25hcHMgPSBHZXQtQ2hpbGRJdGVtIC1MaXRlcmFsUGF0aCAkYmsgLUZpbHRl
|
||||||
|
ciAnc25hcHNob3QtKi56aXAnIC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlIHwgU29ydC1P
|
||||||
|
YmplY3QgTmFtZSAtRGVzY2VuZGluZwppZiAoLW5vdCAkc25hcHMpIHsKICAgIFdyaXRlLUhvc3Qg
|
||||||
|
IktlaW5lIFNpY2hlcnVuZ2VuIHZvcmhhbmRlbi4gU2ljaGVydW5nZW4gZW50c3RlaGVuIGF1dG9t
|
||||||
|
YXRpc2NoIGJlaW0gZXJzdGVuIFVwZGF0ZS4iIC1Gb3JlZ3JvdW5kQ29sb3IgUmVkCiAgICByZXR1
|
||||||
|
cm4KfQoKV3JpdGUtSG9zdCAiIgpXcml0ZS1Ib3N0ICJWZXJmw7xnYmFyZSBTaWNoZXJ1bmdlbiAo
|
||||||
|
bmV1ZXN0ZSB6dWVyc3QpOiIgLUZvcmVncm91bmRDb2xvciBDeWFuCiRpID0gMApmb3JlYWNoICgk
|
||||||
|
cyBpbiAkc25hcHMpIHsKICAgICRzaXplID0gJ3swOk4xfSBNQicgLWYgKCRzLkxlbmd0aCAvIDFN
|
||||||
|
QikKICAgICR0YWcgID0gaWYgKCRpIC1lcSAwKSB7ICIgIDwtIG5ldWVzdGUiIH0gZWxzZSB7ICIi
|
||||||
|
IH0KICAgIFdyaXRlLUhvc3QgKCIgIFt7MH1dIHsxfSAgKHsyfSl7M30iIC1mICRpLCAkcy5OYW1l
|
||||||
|
LCAkc2l6ZSwgJHRhZykKICAgICRpKysKfQpXcml0ZS1Ib3N0ICIiCiRjID0gUmVhZC1Ib3N0ICJO
|
||||||
|
dW1tZXIgZGVyIFNpY2hlcnVuZyB3w6RobGVuIChFbnRlciA9IG5ldWVzdGUgWzBdKSIKaWYgKCRj
|
||||||
|
IC1lcSAnJykgeyAkYyA9ICcwJyB9CmlmICgkYyAtbm90bWF0Y2ggJ15cZCskJyAtb3IgW2ludF0k
|
||||||
|
YyAtZ2UgJHNuYXBzLkNvdW50KSB7CiAgICBXcml0ZS1Ib3N0ICJVbmfDvGx0aWdlIEF1c3dhaGwu
|
||||||
|
IEFiZ2Vicm9jaGVuLiIgLUZvcmVncm91bmRDb2xvciBZZWxsb3cKICAgIHJldHVybgp9CiRjaG9z
|
||||||
|
ZW4gPSAkc25hcHNbW2ludF0kY10KJHppcCAgICA9ICRjaG9zZW4uRnVsbE5hbWUKCiMgSW50ZWdy
|
||||||
|
aXTDpHQgZGVyIFNpY2hlcnVuZyBwcsO8ZmVuLCBCRVZPUiBpcmdlbmRldHdhcyBlcnNldHp0IHdp
|
||||||
|
cmQKQWRkLVR5cGUgLUFzc2VtYmx5TmFtZSBTeXN0ZW0uSU8uQ29tcHJlc3Npb24uRmlsZVN5c3Rl
|
||||||
|
bQp0cnkgewogICAgJHogPSBbU3lzdGVtLklPLkNvbXByZXNzaW9uLlppcEZpbGVdOjpPcGVuUmVh
|
||||||
|
ZCgkemlwKQogICAgJG51bGwgPSAkei5FbnRyaWVzLkNvdW50CiAgICAkei5EaXNwb3NlKCkKfSBj
|
||||||
|
YXRjaCB7CiAgICBXcml0ZS1Ib3N0ICJGRUhMRVI6IFNpY2hlcnVuZyBpc3QgYmVzY2jDpGRpZ3Qg
|
||||||
|
4oCUIFJvbGxiYWNrIGFiZ2Vicm9jaGVuOiAkemlwIiAtRm9yZWdyb3VuZENvbG9yIFJlZAogICAg
|
||||||
|
cmV0dXJuCn0KCldyaXRlLUhvc3QgIiIKJHluID0gUmVhZC1Ib3N0ICJTdGFuZCAnJCgkY2hvc2Vu
|
||||||
|
Lk5hbWUpJyB3aWVkZXJoZXJzdGVsbGVuPyBEZXIgYWt0dWVsbGUgU3RhbmQgd2lyZCBlcnNldHp0
|
||||||
|
ISBbai9OXSIKaWYgKCR5biAtbm90aW4gJ2onLCdKJywneScsJ1knKSB7IFdyaXRlLUhvc3QgIkFi
|
||||||
|
Z2Vicm9jaGVuLiI7IHJldHVybiB9CgojIFNlcnZlciBzdG9wcGVuCldyaXRlLUhvc3QgIlN0b3Bw
|
||||||
|
ZSBTZXJ2ZXIgLi4uIgppZiAoJF9zdG9wTmFtZSAtbmUgJycpIHsKICAgICRzcCA9IEpvaW4tUGF0
|
||||||
|
aCAkcm9vdCAkX3N0b3BOYW1lCiAgICBpZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkc3ApIHsg
|
||||||
|
JiBjbWQgL2MgImAiJHNwYCIiOyBTdGFydC1TbGVlcCAtU2Vjb25kcyAyIH0KICAgIGVsc2UgeyBX
|
||||||
|
cml0ZS1Ib3N0ICIgIChTdG9wLVNrcmlwdCAnJF9zdG9wTmFtZScgbmljaHQgZ2VmdW5kZW4g4oCU
|
||||||
|
IMO8YmVyc3BydW5nZW4pIiAtRm9yZWdyb3VuZENvbG9yIERhcmtZZWxsb3cgfQp9IGVsc2UgeyBX
|
||||||
|
cml0ZS1Ib3N0ICIgIChLZWluIFN0b3AtU2tyaXB0IGtvbmZpZ3VyaWVydCDigJQgw7xiZXJzcHJ1
|
||||||
|
bmdlbikiIC1Gb3JlZ3JvdW5kQ29sb3IgRGFya1llbGxvdyB9CgojIEFrdHVlbGxlbiBTdGFuZCBi
|
||||||
|
ZWlzZWl0ZSB2ZXJzY2hpZWJlbiAoU2ljaGVyaGVpdHNuZXR6LCBrZWluIERhdGVudmVybHVzdCkK
|
||||||
|
JGFzaWRlID0gSm9pbi1QYXRoICRiayAoIl92b3Itcm9sbGJhY2stIiArIChHZXQtRGF0ZSAtRm9y
|
||||||
|
bWF0ICd5eXl5TU1kZC1ISG1tc3MnKSkKTmV3LUl0ZW0gLUl0ZW1UeXBlIERpcmVjdG9yeSAtUGF0
|
||||||
|
aCAkYXNpZGUgLUZvcmNlIHwgT3V0LU51bGwKR2V0LUNoaWxkSXRlbSAtTGl0ZXJhbFBhdGggJHJv
|
||||||
|
b3QgLUZvcmNlIHwgV2hlcmUtT2JqZWN0IHsgJF9leGNsIC1ub3Rjb250YWlucyAkXy5OYW1lIH0g
|
||||||
|
fCBGb3JFYWNoLU9iamVjdCB7CiAgICBNb3ZlLUl0ZW0gLUxpdGVyYWxQYXRoICRfLkZ1bGxOYW1l
|
||||||
|
IC1EZXN0aW5hdGlvbiAoSm9pbi1QYXRoICRhc2lkZSAkXy5OYW1lKSAtRm9yY2UKfQoKIyBTaWNo
|
||||||
|
ZXJ1bmcgd2llZGVyaGVyc3RlbGxlbgp0cnkgewogICAgRXhwYW5kLUFyY2hpdmUgLUxpdGVyYWxQ
|
||||||
|
YXRoICR6aXAgLURlc3RpbmF0aW9uUGF0aCAkcm9vdCAtRm9yY2UKICAgIFdyaXRlLUhvc3QgIlN0
|
||||||
|
YW5kIHdpZWRlcmhlcmdlc3RlbGx0OiAkKCRjaG9zZW4uTmFtZSkiIC1Gb3JlZ3JvdW5kQ29sb3Ig
|
||||||
|
R3JlZW4KfSBjYXRjaCB7CiAgICBXcml0ZS1Ib3N0ICJGRUhMRVIgYmVpbSBXaWVkZXJoZXJzdGVs
|
||||||
|
bGVuIOKAlCBtYWNoZSDDhG5kZXJ1bmcgcsO8Y2tnw6RuZ2lnIC4uLiIgLUZvcmVncm91bmRDb2xv
|
||||||
|
ciBSZWQKICAgIEdldC1DaGlsZEl0ZW0gLUxpdGVyYWxQYXRoICRyb290IC1Gb3JjZSB8IFdoZXJl
|
||||||
|
LU9iamVjdCB7ICRfZXhjbCAtbm90Y29udGFpbnMgJF8uTmFtZSB9IHwKICAgICAgICBSZW1vdmUt
|
||||||
|
SXRlbSAtUmVjdXJzZSAtRm9yY2UgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUKICAgIEdl
|
||||||
|
dC1DaGlsZEl0ZW0gLUxpdGVyYWxQYXRoICRhc2lkZSAtRm9yY2UgfCBGb3JFYWNoLU9iamVjdCB7
|
||||||
|
CiAgICAgICAgTW92ZS1JdGVtIC1MaXRlcmFsUGF0aCAkXy5GdWxsTmFtZSAtRGVzdGluYXRpb24g
|
||||||
|
KEpvaW4tUGF0aCAkcm9vdCAkXy5OYW1lKSAtRm9yY2UKICAgIH0KICAgIFdyaXRlLUhvc3QgIlZv
|
||||||
|
cmhlcmlnZXIgWnVzdGFuZCB3aWVkZXJoZXJnZXN0ZWxsdCDigJQga2VpbiBEYXRlbnZlcmx1c3Qu
|
||||||
|
IiAtRm9yZWdyb3VuZENvbG9yIFllbGxvdwogICAgcmV0dXJuCn0KCiMgQmVpc2VpdGUtT3JkbmVy
|
||||||
|
IGF1ZnLDpHVtZW46IG51ciBkaWUgbGV0enRlbiAyIGJlaGFsdGVuCkdldC1DaGlsZEl0ZW0gLUxp
|
||||||
|
dGVyYWxQYXRoICRiayAtRGlyZWN0b3J5IC1GaWx0ZXIgJ192b3Itcm9sbGJhY2stKicgLUVycm9y
|
||||||
|
QWN0aW9uIFNpbGVudGx5Q29udGludWUgfAogICAgU29ydC1PYmplY3QgTmFtZSAtRGVzY2VuZGlu
|
||||||
|
ZyB8IFNlbGVjdC1PYmplY3QgLVNraXAgMiB8CiAgICBSZW1vdmUtSXRlbSAtUmVjdXJzZSAtRm9y
|
||||||
|
Y2UgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUKCiMgU2VydmVyIHN0YXJ0ZW4KJHN0cCA9
|
||||||
|
IEpvaW4tUGF0aCAkcm9vdCAkX3N0YXJ0TmFtZQppZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAk
|
||||||
|
c3RwKSB7CiAgICBTdGFydC1Qcm9jZXNzIC1GaWxlUGF0aCAnY21kLmV4ZScgLUFyZ3VtZW50TGlz
|
||||||
|
dCAiL2MgYCIkc3RwYCIiIC1XaW5kb3dTdHlsZSBIaWRkZW4KICAgIFdyaXRlLUhvc3QgIlNlcnZl
|
||||||
|
ciBnZXN0YXJ0ZXQuIiAtRm9yZWdyb3VuZENvbG9yIEdyZWVuCn0gZWxzZSB7CiAgICBXcml0ZS1I
|
||||||
|
b3N0ICJTdGFydC1Ta3JpcHQgJyRfc3RhcnROYW1lJyBuaWNodCBnZWZ1bmRlbiDigJQgYml0dGUg
|
||||||
|
U2VydmVyIG1hbnVlbGwgc3RhcnRlbi4iIC1Gb3JlZ3JvdW5kQ29sb3IgWWVsbG93Cn0KCldyaXRl
|
||||||
|
LUhvc3QgIiIKV3JpdGUtSG9zdCAiPT09IFJvbGxiYWNrIGFiZ2VzY2hsb3NzZW4gPT09IiAtRm9y
|
||||||
|
ZWdyb3VuZENvbG9yIEdyZWVuCldyaXRlLUhvc3QgIiAgICBXaWVkZXJoZXJnZXN0ZWxsdDogJCgk
|
||||||
|
Y2hvc2VuLk5hbWUpIiAtRm9yZWdyb3VuZENvbG9yIEN5YW4K
|
||||||
### FILE: server.ps1 | 241203
|
### FILE: server.ps1 | 241203
|
||||||
IyBTdGFuZDogMjAyNi0wNS0xNA0KcGFyYW0oDQogICAgW2ludF0kUG9ydCA9IDgwODAsDQogICAg
|
IyBTdGFuZDogMjAyNi0wNS0xNA0KcGFyYW0oDQogICAgW2ludF0kUG9ydCA9IDgwODAsDQogICAg
|
||||||
W3N0cmluZ10kUm9vdFBhdGggPSAnJywNCiAgICAjIE9wdGlvbmFsZXMgendlaXRlcyBSb290IGZ1
|
W3N0cmluZ10kUm9vdFBhdGggPSAnJywNCiAgICAjIE9wdGlvbmFsZXMgendlaXRlcyBSb290IGZ1
|
||||||
|
|||||||
@@ -0,0 +1,113 @@
|
|||||||
|
# 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
|
||||||
|
|
||||||
|
$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
|
||||||
|
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
|
||||||
|
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 ""
|
||||||
|
$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) {
|
||||||
|
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
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Host ""
|
||||||
|
$yn = Read-Host "Stand '$($chosen.Name)' wiederherstellen? Der aktuelle Stand wird ersetzt! [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
|
||||||
|
}
|
||||||
|
Write-Host "Vorheriger Zustand wiederhergestellt — kein Datenverlust." -ForegroundColor Yellow
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
# Server starten
|
||||||
|
$stp = Join-Path $root $_startName
|
||||||
|
if (Test-Path -LiteralPath $stp) {
|
||||||
|
Start-Process -FilePath 'cmd.exe' -ArgumentList "/c `"$stp`"" -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 "=== Rollback abgeschlossen ===" -ForegroundColor Green
|
||||||
|
Write-Host " Wiederhergestellt: $($chosen.Name)" -ForegroundColor Cyan
|
||||||
+151
-89
@@ -2,24 +2,98 @@
|
|||||||
# Zentraler Updater - wird von update.bat per Invoke-Expression geladen.
|
# Zentraler Updater - wird von update.bat per Invoke-Expression geladen.
|
||||||
# Erwartet im aufrufenden Scope:
|
# Erwartet im aufrufenden Scope:
|
||||||
# $proj - Projektname (z.B. 'VI3DGL', 'FLD-Schichtplanung', 'DRIVE', 'Portal_Union')
|
# $proj - Projektname (z.B. 'VI3DGL', 'FLD-Schichtplanung', 'DRIVE', 'Portal_Union')
|
||||||
# $root - Installationspfad (Verzeichnis mit server.ps1, VERSION usw.)
|
# $root - Installationspfad (Portal-Wurzel mit index.html, VERSION usw.)
|
||||||
# $stopBat - (optional) Dateiname des Stop-Skripts, z.B. 'DRIVE_Stop.bat'.
|
# $stopBat - (optional) Stop-Skript-Dateiname; ''=kein Stop; nicht gesetzt=Fallback 'stop.bat'
|
||||||
# Leerstring '' = kein Stop-Schritt. Nicht gesetzt = Fallback auf 'stop.bat'.
|
# $startBat - (optional) Start-Skript-Dateiname; nicht gesetzt=Fallback 'dgl.bat'
|
||||||
# $startBat - (optional) Dateiname des Start-Skripts, z.B. 'DRIVE_Start.bat'.
|
#
|
||||||
# Nicht gesetzt = Fallback auf 'dgl.bat'.
|
# Strategie: Transaktionales Update mit vollständigem ZIP-Snapshot vor jeder
|
||||||
|
# Änderung. Bei Fehler wird der vorherige Stand automatisch 1:1 wiederhergestellt.
|
||||||
$ErrorActionPreference = 'Stop'
|
$ErrorActionPreference = 'Stop'
|
||||||
$DistBase = "https://updates.rhino.nrw/rhino/StatusQuo_Updates/raw/branch/main/$proj"
|
$DistBase = "https://updates.rhino.nrw/rhino/StatusQuo_Updates/raw/branch/main/$proj"
|
||||||
|
|
||||||
# Stop/Start-Namen VOR jeder Ueberschreibung aus dem aufrufenden Scope lesen
|
|
||||||
$_stopName = if ($null -ne $stopBat) { $stopBat } else { 'stop.bat' }
|
$_stopName = if ($null -ne $stopBat) { $stopBat } else { 'stop.bat' }
|
||||||
$_startName = if ($null -ne $startBat) { $startBat } else { 'dgl.bat' }
|
$_startName = if ($null -ne $startBat) { $startBat } else { 'dgl.bat' }
|
||||||
|
|
||||||
# Lokale Version lesen
|
# ---------------------------------------------------------------------------
|
||||||
|
# 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
|
||||||
|
# ---------------------------------------------------------------------------
|
||||||
$localVer = '0.0.0'
|
$localVer = '0.0.0'
|
||||||
$verFile = Join-Path $root 'VERSION'
|
$verFile = Join-Path $root 'VERSION'
|
||||||
if (Test-Path -LiteralPath $verFile) { $localVer = (Get-Content $verFile -Raw).Trim() }
|
if (Test-Path -LiteralPath $verFile) { $localVer = (Get-Content $verFile -Raw).Trim() }
|
||||||
|
|
||||||
# Remote-Version abfragen
|
|
||||||
Write-Host "Prüfe Update für $proj ..."
|
Write-Host "Prüfe Update für $proj ..."
|
||||||
try {
|
try {
|
||||||
$remoteVer = (Invoke-WebRequest -Uri "$DistBase/VERSION" -UseBasicParsing -TimeoutSec 15).Content.Trim()
|
$remoteVer = (Invoke-WebRequest -Uri "$DistBase/VERSION" -UseBasicParsing -TimeoutSec 15).Content.Trim()
|
||||||
@@ -31,20 +105,26 @@ try {
|
|||||||
Write-Host "Lokal: v$localVer"
|
Write-Host "Lokal: v$localVer"
|
||||||
Write-Host "Remote: v$remoteVer"
|
Write-Host "Remote: v$remoteVer"
|
||||||
|
|
||||||
if ($localVer -eq $remoteVer) {
|
# Nur echtes Upgrade anbieten (kein versehentlicher Downgrade)
|
||||||
Write-Host "Bereits auf aktuellem Stand. Kein Update nötig." -ForegroundColor Green
|
$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 }
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
$yn = Read-Host "Update von v$localVer auf v$remoteVer installieren? [j/N]"
|
$yn = Read-Host "Update von v$localVer auf v$remoteVer installieren? [j/N]"
|
||||||
if ($yn -notin 'j','J','y','Y') { Write-Host "Abgebrochen."; return }
|
if ($yn -notin 'j','J','y','Y') { Write-Host "Abgebrochen."; return }
|
||||||
|
|
||||||
# Temp-Ordner
|
# ---------------------------------------------------------------------------
|
||||||
|
# 2. Bundles herunterladen (Server läuft noch)
|
||||||
|
# ---------------------------------------------------------------------------
|
||||||
$tmp = Join-Path $root 'TempUpdate'
|
$tmp = Join-Path $root 'TempUpdate'
|
||||||
Remove-Item $tmp -Recurse -Force -ErrorAction SilentlyContinue
|
Remove-Item $tmp -Recurse -Force -ErrorAction SilentlyContinue
|
||||||
New-Item -ItemType Directory -Path $tmp | Out-Null
|
New-Item -ItemType Directory -Path $tmp | Out-Null
|
||||||
|
|
||||||
# Bundles laden
|
|
||||||
Write-Host "Lade Manifest ..."
|
Write-Host "Lade Manifest ..."
|
||||||
$manifest = (Invoke-WebRequest -Uri "$DistBase/MANIFEST.txt" -UseBasicParsing -TimeoutSec 30).Content
|
$manifest = (Invoke-WebRequest -Uri "$DistBase/MANIFEST.txt" -UseBasicParsing -TimeoutSec 30).Content
|
||||||
$bundles = ($manifest -split "`n" | Where-Object { $_ -match '^sync-bundle-' } |
|
$bundles = ($manifest -split "`n" | Where-Object { $_ -match '^sync-bundle-' } |
|
||||||
@@ -57,110 +137,92 @@ foreach ($b in $bundles) {
|
|||||||
Write-Host " sync-entpacken.bat ..."
|
Write-Host " sync-entpacken.bat ..."
|
||||||
Invoke-WebRequest -Uri "$DistBase/sync-entpacken.bat" -OutFile (Join-Path $tmp 'sync-entpacken.bat') -UseBasicParsing -TimeoutSec 30
|
Invoke-WebRequest -Uri "$DistBase/sync-entpacken.bat" -OutFile (Join-Path $tmp 'sync-entpacken.bat') -UseBasicParsing -TimeoutSec 30
|
||||||
|
|
||||||
# --- CHECKSUMMEN VERIFIZIEREN (optional — wird übersprungen wenn keine CHECKSUMS.txt vorhanden) ---
|
# ---------------------------------------------------------------------------
|
||||||
Write-Host "Verifiziere Checksummen ..."
|
# 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 ..."
|
||||||
try {
|
try {
|
||||||
$chkContent = (Invoke-WebRequest -Uri "$DistBase/CHECKSUMS.txt" -UseBasicParsing -TimeoutSec 15).Content
|
$chk = (Invoke-WebRequest -Uri "$DistBase/CHECKSUMS.txt" -UseBasicParsing -TimeoutSec 15).Content
|
||||||
$allOk = $true
|
$allOk = $true
|
||||||
foreach ($line in ($chkContent -split "`n")) {
|
foreach ($line in ($chk -split "`n")) {
|
||||||
$line = $line.Trim()
|
$line = $line.Trim()
|
||||||
if ($line -eq '' -or $line.StartsWith('#')) { continue }
|
if ($line -eq '' -or $line.StartsWith('#')) { continue }
|
||||||
# Format: SHA256HASH filename
|
|
||||||
$parts = $line -split '\s+', 2
|
$parts = $line -split '\s+', 2
|
||||||
if ($parts.Count -lt 2) { continue }
|
if ($parts.Count -lt 2) { continue }
|
||||||
$expected = $parts[0].ToLower()
|
$expected = $parts[0].ToLower()
|
||||||
$filename = $parts[1].Trim()
|
$filename = $parts[1].Trim().TrimStart('*') # sha256sum nutzt evtl. '*' Prefix
|
||||||
$localPath = Join-Path $tmp $filename
|
$localPath = Join-Path $tmp $filename
|
||||||
if (-not (Test-Path -LiteralPath $localPath)) { continue }
|
if (-not (Test-Path -LiteralPath $localPath)) { continue }
|
||||||
$actual = (Get-FileHash -LiteralPath $localPath -Algorithm SHA256).Hash.ToLower()
|
$actual = (Get-FileHash -LiteralPath $localPath -Algorithm SHA256).Hash.ToLower()
|
||||||
if ($actual -ne $expected) {
|
if ($actual -ne $expected) {
|
||||||
Write-Host "FEHLER: Checksumme stimmt nicht für $filename!" -ForegroundColor Red
|
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
|
$allOk = $false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (-not $allOk) {
|
if (-not $allOk) {
|
||||||
Remove-Item $tmp -Recurse -Force -ErrorAction SilentlyContinue
|
Remove-Item $tmp -Recurse -Force -ErrorAction SilentlyContinue
|
||||||
Write-Host "Update abgebrochen — keine Dateien verändert. Bitte Support kontaktieren." -ForegroundColor Red
|
Write-Host "Update abgebrochen — keine Datei verändert. Bitte Support kontaktieren." -ForegroundColor Red
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
Write-Host " Alle Checksummen OK." -ForegroundColor Green
|
Write-Host " Alle Checksummen OK." -ForegroundColor Green
|
||||||
} catch {
|
} catch {
|
||||||
# CHECKSUMS.txt nicht vorhanden — Prüfung überspringen (abwärtskompatibel)
|
Write-Host " (Keine CHECKSUMS.txt — Integritätsprüfung übersprungen)" -ForegroundColor DarkGray
|
||||||
Write-Host " (Keine CHECKSUMS.txt — Prüfung übersprungen)" -ForegroundColor DarkGray
|
|
||||||
}
|
}
|
||||||
# --- END CHECKSUMMEN ---
|
|
||||||
|
|
||||||
# Server stoppen
|
# ---------------------------------------------------------------------------
|
||||||
|
# 4. Server stoppen
|
||||||
|
# ---------------------------------------------------------------------------
|
||||||
Write-Host "Stoppe Server ..."
|
Write-Host "Stoppe Server ..."
|
||||||
if ($_stopName -ne '') {
|
Stop-Portal
|
||||||
$_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
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
Write-Host " (Kein Stop-Skript konfiguriert — übersprungen)" -ForegroundColor DarkYellow
|
|
||||||
}
|
|
||||||
|
|
||||||
# --- BACKUP (vor jeder Dateiänderung) ---
|
# ---------------------------------------------------------------------------
|
||||||
$ts = Get-Date -Format 'yyyyMMdd-HHmmss'
|
# 5. Snapshot (transaktionssicher: ohne gültiges Backup kein Update)
|
||||||
$bkDir = Join-Path $root ".backup\$ts"
|
# ---------------------------------------------------------------------------
|
||||||
New-Item -ItemType Directory -Path $bkDir -Force | Out-Null
|
Write-Host "Erstelle vollständige Sicherung ..."
|
||||||
|
try {
|
||||||
# 1. Nutzerdaten sichern (kritisch!)
|
$snap = New-Snapshot
|
||||||
$_dataPath = Join-Path $root 'data'
|
$snapSize = '{0:N1} MB' -f ((Get-Item -LiteralPath $snap).Length / 1MB)
|
||||||
if (Test-Path -LiteralPath $_dataPath) {
|
Write-Host " Snapshot: $snap ($snapSize)" -ForegroundColor Cyan
|
||||||
Copy-Item -Path $_dataPath -Destination (Join-Path $bkDir 'data') -Recurse -Force
|
} catch {
|
||||||
$dataCount = (Get-ChildItem -LiteralPath $_dataPath -Recurse -File -ErrorAction SilentlyContinue).Count
|
Write-Host "FEHLER beim Sichern: $($_.Exception.Message)" -ForegroundColor Red
|
||||||
Write-Host " Nutzerdaten gesichert ($dataCount Dateien)" -ForegroundColor Cyan
|
Write-Host "Update abgebrochen — keine Datei verändert. Server wird wieder gestartet." -ForegroundColor Yellow
|
||||||
} 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
|
|
||||||
|
|
||||||
# Aufräumen
|
|
||||||
Remove-Item $tmp -Recurse -Force -ErrorAction SilentlyContinue
|
Remove-Item $tmp -Recurse -Force -ErrorAction SilentlyContinue
|
||||||
|
Start-Portal
|
||||||
# Server neu starten
|
return
|
||||||
$_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
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# ---------------------------------------------------------------------------
|
||||||
|
# 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
|
||||||
|
}
|
||||||
|
Remove-Item $tmp -Recurse -Force -ErrorAction SilentlyContinue
|
||||||
|
Start-Portal
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
# ---------------------------------------------------------------------------
|
||||||
|
# 7. Aufräumen + Start
|
||||||
|
# ---------------------------------------------------------------------------
|
||||||
|
Remove-Item $tmp -Recurse -Force -ErrorAction SilentlyContinue
|
||||||
|
Write-Host "Version auf v$remoteVer aktualisiert." -ForegroundColor Green
|
||||||
|
Start-Portal
|
||||||
|
|
||||||
Write-Host ""
|
Write-Host ""
|
||||||
Write-Host "=== Update abgeschlossen ===" -ForegroundColor Green
|
Write-Host "=== Update abgeschlossen ===" -ForegroundColor Green
|
||||||
Write-Host " Backup liegt unter: $bkDir" -ForegroundColor DarkGray
|
Write-Host " Sicherung: $snap" -ForegroundColor DarkGray
|
||||||
Write-Host " Bei Problemen: rollback.bat doppelklicken!" -ForegroundColor DarkGray
|
Write-Host " Bei Problemen: rollback.bat doppelklicken (funktioniert auch offline)." -ForegroundColor DarkGray
|
||||||
|
|||||||
Reference in New Issue
Block a user