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.

labdash.bat
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.

repmanager.bat
@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