Skip to content

`spack` ist ein kleines Python-Tool zum **Packen** und **Entpacken** von Verzeichnissen mit Quellcode in ein einzelnes Archivformat (`.spk`). Es unterstützt optionale **Verschlüsselung mit Passwort (AES-GCM)** sowie eine **.spignore-Datei** (ähnlich wie `.gitignore`), um bestimmte Dateien oder Ordner auszuschließen.

Notifications You must be signed in to change notification settings

pepegiallo/spack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

spack – Source Packer

spack ist ein kleines Python-Tool zum Packen und Entpacken von Verzeichnissen mit Quellcode in ein einzelnes Archivformat (.spk).
Es unterstützt optionale Verschlüsselung mit Passwort (AES-GCM) sowie eine .spignore-Datei (ähnlich wie .gitignore), um bestimmte Dateien oder Ordner auszuschließen.


Features

  • Packt komplette Verzeichnisse in eine einzige Datei (.spk)
  • Optionales Passwort → starke Verschlüsselung mit AES-256-GCM
  • Kompression mit zlib
  • Bewahrt relative Pfadstruktur, Dateigröße, Änderungszeit und Dateirechte
  • .spignore unterstützt Globs (*, ?, **) sowie Ordnerpräfixe
  • Plattformübergreifend (Linux, macOS, Windows)

Installation

  1. Python 3.9+ installieren
  2. Repository oder Datei spack.py herunterladen
  3. (Optional für Passwortschutz) benötigtes Paket installieren:
pip install cryptography

Verwendung

Das Tool kennt zwei Hauptbefehle:

1. Packen

python spack.py pack <quellverzeichnis> <ausgabedatei> [--password PASSWORT]

Beispiele:

# Packen ohne Passwort
python spack.py pack ./meinprojekt meinprojekt.spk

# Packen mit Passwort
python spack.py pack ./meinprojekt geheim.spk --password "supersecure"

2. Entpacken

python spack.py unpack <archivdatei> <zielverzeichnis> [--password PASSWORT]

Beispiele:

# Entpacken ohne Passwort
python spack.py unpack meinprojekt.spk ./entpackt

# Entpacken mit Passwort
python spack.py unpack geheim.spk ./entpackt --password "supersecure"

.spignore

Wenn im Quellverzeichnis eine Datei .spignore liegt, werden die dort definierten Muster nicht ins Archiv aufgenommen.
Die Syntax ist an .gitignore angelehnt.

Beispiele für .spignore:

# Kommentare mit #
*.log
*.tmp
cache/
build/**
secret?.txt
  • *.log ignoriert alle Log-Dateien
  • cache/ ignoriert den gesamten Ordner cache
  • build/** ignoriert die komplette Build-Hierarchie
  • secret?.txt ignoriert z. B. secret1.txt, secretA.txt

Format-Hinweis

Das .spk-Format ist einfach und eigenständig:

  • Enthält ein JSON-Manifest mit allen Dateiinformationen
  • Darauf folgen die eigentlichen Dateidaten
  • Das Ganze wird mit zlib komprimiert
  • Bei Passwort: zusätzlich AES-GCM-verschlüsselt

Lizenz

Frei verwendbar für private und kommerzielle Zwecke. Keine Garantie oder Haftung.

About

`spack` ist ein kleines Python-Tool zum **Packen** und **Entpacken** von Verzeichnissen mit Quellcode in ein einzelnes Archivformat (`.spk`). Es unterstützt optionale **Verschlüsselung mit Passwort (AES-GCM)** sowie eine **.spignore-Datei** (ähnlich wie `.gitignore`), um bestimmte Dateien oder Ordner auszuschließen.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages