initial commit

This commit is contained in:
Adam Skotarczak 2025-04-23 17:06:09 +02:00
commit b77a270167
8 changed files with 295 additions and 0 deletions

1
LIZENSE Normal file
View File

@ -0,0 +1 @@
MIT

78
README.md Normal file
View File

@ -0,0 +1,78 @@
# ⚙️ GitCopy All in One
![gitCopy Logo](./assets/gitcopy_logo_300x300.png)
> gitCopy ist nur ein Faulheits-Tool das ein zip-Archiv aus einem git-Repository erstellt um es z.B einer KI zu übergeben.
---
## Inhaltsverzeichnis
- [⚙️ GitCopy All in One](#-gitcopy-all-in-one)
- [ Inhaltsverzeichnis](#-inhaltsverzeichnis)
- [ Über das Projekt](#-über-das-projekt)
- [ Struktur](#-struktur)
- [⚙️ Installation - Verwendung](#-installation---verwendung)
- [ Beitragende](#-beitragende)
- [⚠️ Lizenz](#-lizenz)
- [ Hinweise](#-hinweise)
---
## Über das Projekt
Ein Überblick, was das Projekt tut, warum es existiert und für wen es gedacht ist.
-
- Was ist das Ziel?
- Wer soll das nutzen oder lesen?
- Wo kommt es her / wie kam es dazu?
---
## Struktur
Beschreibt den Aufbau deines Projekts (Verzeichnisse, Dateien, Formatierungskonventionen, …)
```cmd
.
├── assets/ # irrelevanter Balast wie icons und Logos
├── gitcopy.bat # Skript
├── README.md # Diese Datei
└── LICENSE # Lizenztext
```
---
## ⚙️ Installation - Verwendung
- gitcopy.git in das Arbeitsverzeichnis kopieren und ausführen
---
## Beitragende
Liste der Autor:innen, Unterstützer:innen oder Reviewer:
- [@realAscot](https://github.com/realAscot) Idee, Konzept, Umsetzung
- Du? Mach gern mit! 😊
---
## ⚠️ Lizenz
Dieses Projekt steht unter der **MIT-Lizenz**.
Details siehe [LICENSE](LICENSE).
---
## Hinweise
- aktuell keine
---

View File

@ -0,0 +1,105 @@
# 🧾 Pflichtenheft Projekt: **gitCoppy**
## Inhalt
- [🧾 Pflichtenheft Projekt: **gitCoppy**](#-pflichtenheft--projekt-gitcoppy)
- [Inhalt](#inhalt)
- [1. Projektübersicht](#1-projektübersicht)
- [2. Zielsetzung und Zweck](#2-zielsetzung-und-zweck)
- [3. Leistungsumfang (Scope)](#3-leistungsumfang-scope)
- [4. Funktionale Anforderungen](#4-funktionale-anforderungen)
- [5. Nicht-funktionale Anforderungen](#5-nicht-funktionale-anforderungen)
- [6. Systemumgebung](#6-systemumgebung)
- [7. Schnittstellen](#7-schnittstellen)
- [8. Benutzeroberfläche (UI/UX)](#8-benutzeroberfläche-uiux)
- [9. Datenmodell und Speicherstruktur](#9-datenmodell-und-speicherstruktur)
- [10. Fehlerbehandlung und Logging](#10-fehlerbehandlung-und-logging)
- [11. Benutzerrollen und Rechte](#11-benutzerrollen-und-rechte)
- [12. Ablaufplan / Meilensteine](#12-ablaufplan--meilensteine)
- [13. Testfälle und Akzeptanzkriterien](#13-testfälle-und-akzeptanzkriterien)
- [14. Lieferumfang](#14-lieferumfang)
- [15. Sonstiges](#15-sonstiges)
## 1. Projektübersicht
- **Projektname:** gitCopy
- einheitliches autarges Skript für jede Plattform. Sinngemäss für Windows `gitCopy.bat`und Linux `gitCopy.sh`.
- **Kurzbeschreibung:**
gitCopy ist eine Skriptsammlung um für die Kommunikation mit der KI, dieser ein Projekt komplett zur Verfügung zu stellen. Am liebsten wäre mir ChatGPT würde direkt auf ein lokales Repository zugreifen können, dann wäre dieses Projekt unnötig.
## 2. Zielsetzung und Zweck
- **Ziel:**
- **Nutzen/Zweck:**
## 3. Leistungsumfang (Scope)
- **Was soll umgesetzt werden:**
- **Was ist explizit ausgeschlossen:**
## 4. Funktionale Anforderungen
- **Funktion 1:**
- Beschreibung:
- Trigger / Auslöser:
- Eingaben:
- Ausgaben:
## 5. Nicht-funktionale Anforderungen
- Modularer Aufbau
- Offline-Lauffähigkeit
## 6. Systemumgebung
- **Zielplattform(en):**
- Linux (sh/ bash)
- Windows (CMD und Powershell kompatibel)
## 7. Schnittstellen
- **keine**
## 8. Benutzeroberfläche (UI/UX)
- **keine**
## 9. Datenmodell und Speicherstruktur
- **keine**
## 10. Fehlerbehandlung und Logging
- **Fehlertypen / Meldungen:**
- Fehler wenn noch offener Commit.
- **Log-Strategie (Datei, Konsole, Rotation):**
## 11. Benutzerrollen und Rechte
- **Rollen:**
- **Rechteverteilung:**
## 12. Ablaufplan / Meilensteine
- **Feature-Priorisierung:**
- **Vorschau-Zwischenstände gewünscht?**
- **Deadline (optional):**
## 13. Testfälle und Akzeptanzkriterien
- **Testszenarien:**
- **Wann ist der Auftrag abgeschlossen:**
## 14. Lieferumfang
- [ ] Quellcode
- [ ] README.md
- [ ] CHANGELOG.md
## 15. Sonstiges
- **keine**

1
VERSION Normal file
View File

@ -0,0 +1 @@
1.0.0

BIN
assets/gitcopy-original.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

BIN
assets/gitcopy_icon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

110
gitcopy.bat Normal file
View File

@ -0,0 +1,110 @@
@echo off
setlocal enabledelayedexpansion
chcp 65001 >nul
REM Skript um aus dem Projekt mit git ein portables .zip zu erstellen
REM (C) Adam Skotarczak
REM
REM Version: v1.0.0
REM Github: https://github.com/realAscot/gitcopy
REM -------------------------------------------------------------------
REM Prüfe auf optionalen Parameter "--debug"
set DEBUG=0
if "%~1"=="--debug" (
set DEBUG=1
echo [⚠] Debug-Modus aktiv: Ignoriere offene Commits.
)
if "%~1"=="--h" (
call :show_help
exit /b 0
)
call :generate_timestamp
set ZIP_NAME=projektarchiv-%TIMESTAMP%.zip
REM -------------------------------------------------------------------
pushd %~dp0
if %DEBUG%==0 (
echo [*] Prüfe auf uncommitted oder ungetrackte Änderungen...
set "hasChanges="
for /f "delims=" %%i in ('git status --porcelain') do (
set "hasChanges=1"
goto :has_changes
)
echo [✔] Arbeitsverzeichnis ist sauber.
) else (
echo [⚠] Prüfschritt übersprungen.
)
goto :create_zip
:has_changes
echo .
echo [!] Es sind uncommitted oder ungetrackte Änderungen vorhanden:
git status --short
echo.
echo [✘] Bitte committe oder stash diese Änderungen, bevor du ein ZIP erstellst.
echo [⚠] versuche --debug um diese Prüfung zu umgehen aber dann wird das Archiv unvollständig.
endlocal
pause
exit /b 1
:create_zip
echo [*] Erstelle ZIP-Archiv von HEAD...
git archive --format=zip --output="%ZIP_NAME%" HEAD
if errorlevel 1 (
echo [!] Fehler beim Erstellen des Archivs.
pause
exit /b 1
)
echo [✔] Archiv erfolgreich erstellt: %CD%\%ZIP_NAME%
popd
endlocal
pause
exit /b 0
:generate_timestamp
REM Erzeugt einen Zeitstempel TTMMJJHHMM sicher und universell
for /f "tokens=1-4 delims=. " %%d in ('echo %DATE%') do (
set "TAG=0%%d"
set "MONAT=0%%e"
set "JAHR=%%f"
)
for /f "tokens=1-2 delims=: " %%g in ('echo %TIME%') do (
set "STUNDE=0%%g"
set "MINUTE=0%%h"
)
set "TAG=!TAG:~-2!"
set "MONAT=!MONAT:~-2!"
set "JAHR=!JAHR:~-2!"
set "STUNDE=!STUNDE:~-2!"
set "MINUTE=!MINUTE:~-2!"
set "TIMESTAMP=!TAG!!MONAT!!JAHR!!STUNDE!!MINUTE!"
goto :eof
:show_help
echo.
echo GitCopy Hilfe
echo =====================
echo Erstellt ein ZIP-Archiv vom aktuellen HEAD-Stand des Git-Repositories.
echo.
echo Verwendung:
echo gitcopy.bat [Option]
echo.
echo Optionen:
echo --debug Überspringt die Prüfung auf uncommitted oder ungetrackte Änderungen.
echo --h Zeigt diese Hilfe an.
echo.
pause
goto :eof
endlocal