initial commit
This commit is contained in:
commit
b77a270167
78
README.md
Normal file
78
README.md
Normal file
@ -0,0 +1,78 @@
|
||||
# ⚙️ GitCopy All in One
|
||||
|
||||

|
||||
|
||||
> 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
|
||||
|
||||
---
|
105
SPECIFICATIONS.obligations.md
Normal file
105
SPECIFICATIONS.obligations.md
Normal 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**
|
BIN
assets/gitcopy-original.png
Normal file
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
BIN
assets/gitcopy_icon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 127 KiB |
BIN
assets/gitcopy_logo_300x300.png
Normal file
BIN
assets/gitcopy_logo_300x300.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 130 KiB |
110
gitcopy.bat
Normal file
110
gitcopy.bat
Normal 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
|
Loading…
x
Reference in New Issue
Block a user