Einrichtungs- Script für lokale Git-Repositories

Mit einer fertigen Arbeitskopie eines Repositories zu arbeiten ist dank VSCode & Co relativ simpel, aber sich als User erstmal eine ganze Batterie von Repositories auf die eigene Platte zu clonen und dann schlimmstenfalls da auch noch ein virtuelles Python- Environment inklusive den erforderlichen Paketen zu aktivieren, dürfte für den durchschnittlichen Benutzer wohl etwas viel werden.

Als Arme-Leute-Lösung entstand so folgendes: Für jedes Repository legt der Admin eine Datei an, in der die Parameter stehen, die man zum Einrichten braucht. Diese Einrichtungsdateien + der allgemeinen repmanager.bat legt sich der User dann in das Wurzel- Verzeichnis, unter dem die Repositories liegen sollen. Dann startet er die einzelnen Parameter- Dateien per Doppelklick, und den Rest macht das Script.

Um sich die Scripte runter zu laden, braucht man nur auf die blauen Dateinamen in den Code- Schnipseln zu klicken.

set TARGET=progs set GITNAME=labdash set URL=https://github.com/stko/labdash.git set HASPYTHON=YES call repmanager.bat

Die Repository Manager Batch Datei repmanager.bat

Diese Datei gehört ins Wurzelverzeichnis, von wo aus die einzelnen Installationsscripte dann die ganzen Unterverzeichnisbäume anlegen.

@echo off rem is it started standalone? IF "%TARGET%" == "" GOTO usage if exist .\%TARGET%\%GITNAME%\ ( goto update ) else ( rem target does not exist, so we have to create it setlocal enableextensions mkdir .\%TARGET% endlocal git -C .\%TARGET% clone %URL% %GITNAME% if %errorlevel% == 0 ( cd .\%TARGET%\%GITNAME% goto checkvenv ) echo ERROR: Failed to clone git repository %URL% to %TARGET% goto end ) ) :usage echo ERROR: this batch should only be started as an include of another settings files goto end :update echo start update cd .\%TARGET%\%GITNAME% git pull goto checkvenv :checkvenv IF "%HASPYTHON%" NEQ "YES" GOTO end echo check for venv if exist .venv\ goto initpip echo create venv python -m venv .venv if %errorlevel% == 0 GOTO initpip echo ERROR: Failed to set up .venv directory goto end :initpip echo init pip .venv\Scripts\pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org truststore :updatepip IF EXIST requirements.txt ( .venv\Scripts\pip install -r requirements.txt --use-feature=truststore ) :end pause