Ein benutzerfreundliches GUI-Programm zur Erstellung von Bash-Scripts mit visueller Unterstützung.
- Visuelle Script-Erstellung: Einfache Erstellung von Bash-Scripts durch Drag-and-Drop von Befehlsbausteinen
- Intelligente Tab-Unterstützung: Automatische Einrückung mit 4 Leerzeichen (Bash-Standard)
- Autovervollständigung: Kontextabhängige Vorschläge für Befehle, Variablen und Pfade
- Syntax-Highlighting: Automatische Hervorhebung von Bash-Syntaxelementen
- Zenity-Integration: Einfache Integration von Zenity-Dialogen für interaktive Scripts
- Live-Editor: Echtzeit-Syntaxhervorhebung während der Eingabe
- Automatische Formatierung: Smarte Einrückung basierend auf Bash-Strukturen
- Script-Ausführung: Direktes Testen der erstellten Scripts
- Shebang-Zeile
- Echo-Befehle
- Eingabe lesen
- Bedingte Anweisungen (if/then/else)
- Schleifen (for/while)
- Case-Anweisungen
- Funktionsdefinitionen
- Info-Dialoge
- Fehler-Dialoge
- Warnungs-Dialoge
- Frage-Dialoge
- Eingabedialoge
- Dateiauswahl
- Fortschrittsbalken
- Listen-Dialoge
- Dateioperationen (ls, cd, mkdir, rm, cp, mv)
- Berechtigungen (chmod)
- Prozessverwaltung (ps, kill)
- Textverarbeitung (grep, sed, awk)
- Variablenzuweisung
- String-Operationen
- Array-Operationen
- Vergleichsoperatoren
- Python 3.8 oder höher
- Tkinter (GUI-Bibliothek)
- Zenity (für Dialog-Funktionen)
- Linux-Distribution mit apt, dnf, pacman oder ähnlichem Paketmanager
Empfohlene Methode (automatische Erkennung):
git clone https://github.com/securebitsorg/bash-script-maker.git
cd bash-script-maker
./install.sh
Das Script erkennt automatisch Ihren Paketmanager, installiert alle notwendigen Abhängigkeiten und richtet die Desktop-Integration ein.
Spezifisch für Distributionen:
Für Ubuntu/Debian-basierte Systeme:
./install_apt.sh
Für Fedora/RHEL/CentOS-basierte Systeme:
./install_dnf.sh
Falls Sie die App bereits installiert haben und nur die Desktop-Integration hinzufügen möchten:
./install_desktop_integration.sh
Wenn die automatischen Scripts nicht funktionieren, installieren Sie die Pakete manuell:
Ubuntu/Debian:
sudo apt update
sudo apt install python3 python3-tk python3-pip zenity xterm
Fedora/RHEL/CentOS:
sudo dnf install python3 python3-tkinter python3-pip zenity xterm
Arch Linux:
sudo pacman -S python python-tk python-pip zenity xterm
Andere Distributionen:
Siehe packages.txt
für detaillierte Paketlisten.
pip install -r requirements.txt
Nach der Installation können Sie testen, ob alles korrekt funktioniert:
./test_installation.sh
./tools/test_dependencies.py
Diese Scripts überprüfen alle Abhängigkeiten und geben detaillierte Informationen über eventuelle Probleme.
Das Projekt enthält folgende Installations- und Hilfsscripts:
install.sh
- Universelles Installationsscript (empfohlen)install_apt.sh
- Spezifisch für Ubuntu/Debianinstall_dnf.sh
- Spezifisch für Fedora/RHEL/CentOStest_installation.sh
- Überprüft die Installationtools/test_dependencies.py
- Detaillierte Dependency-Teststests/test_basic.py
- Pytest-Tests für grundlegende Funktionalitätstart.sh
- Startet das Programm mit Abhängigkeitsprüfung
Alle Scripts sind ausführbar und können direkt aufgerufen werden.
Über das Anwendungsmenü: Nach der Installation finden Sie "Bash-Script-Maker" im Anwendungsmenü Ihrer Desktop-Umgebung.
Über das Terminal:
bash-script-maker
Direkt aus dem Quellcode:
python3 bash_script_maker.py
Die App wird automatisch mit einem benutzerdefinierten Icon und Desktop-Integration installiert:
- Icon: Ein modernes SVG-Icon mit Terminal-Design
- Desktop-Datei: Vollständige Integration in das Anwendungsmenü
- Kategorien: Development und Utility
- Unterstützte Distributionen: Alle Linux-Distributionen mit Desktop-Umgebung
- Wählen Sie die gewünschten Befehlsbausteine aus der linken Palette
- Klicken Sie auf einen Baustein, um ihn in den Editor einzufügen
- Bearbeiten Sie die Parameter nach Bedarf
- Speichern Sie das Script
- Testen Sie es mit der Ausführen-Funktion
Ctrl+N
: Neues ScriptCtrl+O
: Script öffnenCtrl+S
: Script speichernCtrl+Shift+S
: Script speichern unterCtrl+Q
: Programm beendenF5
: Script ausführenCtrl+Z
: RückgängigCtrl+Y
: Wiederholen
Tab
: Einrücken (aktuelle Zeile oder Auswahl)Shift+Tab
: Ausrücken (aktuelle Zeile oder Auswahl)Ctrl+A
: Alles auswählenCtrl+D
: Zeile duplizierenCtrl+/
: Kommentar umschaltenCtrl+Space
: Autovervollständigung anzeigenCtrl+Tab
: Alternative für AutovervollständigungEnter
: Automatische Einrückung in neuen ZeilenBackspace
: Intelligente Ausrückung bei Tab-StopsEscape
: Vorschlagsliste schließen
Der Editor erkennt automatisch Bash-Strukturen und passt die Einrückung an:
- Nach
if
,then
,else
,for
,while
,case
,function
wird eingerückt - Nach
fi
,done
,esac
wird ausgerückt - Einrückung mit 4 Leerzeichen (Bash-Standard)
Die intelligente Autovervollständigung bietet kontextabhängige Vorschläge:
- Bash-Befehle: ls, cp, mv, grep, sed, awk, find, etc.
- Bash-Schlüsselwörter: if, then, else, fi, for, while, function, etc.
- Variablen: $HOME, $PATH, $PWD, $USER, benutzerdefinierte Variablen
- Datei- und Pfadvervollständigung: Automatische Vervollständigung von Pfaden
- Befehlsoptionen: Häufig verwendete Optionen für bekannte Befehle
↑/↓
: Zwischen Vorschlägen navigierenEnter/Tab
: Vorschlag übernehmenEscape
: Vorschlagsliste schließenMausrad
: Durch Liste scrollen
- Am Zeilenanfang: Alle verfügbaren Befehle und Schlüsselwörter
- Bei $: Variablen-Vorschläge
- Bei Pfaden: Datei- und Verzeichnisvervollständigung
- Nach bekannten Befehlen: Relevante Optionen
Das Programm erstellt automatisch ein grundlegendes Script-Template:
- GUI-Framework: Tkinter
- Syntax-Highlighting: Regex-basierte Mustererkennung
- Dateiformat: Reine Bash-Scripts (.sh)
- Encoding: UTF-8
- Plattform: Linux (aufgrund Zenity-Abhängigkeit)
Dieses Projekt verwendet GitHub Actions für kontinuierliche Integration und automatische Releases.
- CI/CD Pipeline (
.github/workflows/ci-cd.yml
):- Tests auf Python 3.8-3.12
- Code-Qualität-Checks (Flake8, Black, MyPy)
- Automatische Releases mit semantic-release
- Package-Publishing zu PyPI und GitHub Packages
- Docker-Image-Erstellung
- Dokumentationsgenerierung
- Sicherheitsscans (Bandit, Safety)
Das Projekt verwendet Conventional Commits für automatische Versionierung:
feat:
→ Minor Release (1.1.0 → 1.2.0)fix:
→ Patch Release (1.1.0 → 1.1.1)BREAKING CHANGE:
→ Major Release (1.1.0 → 2.0.0)
Beispiel-Commits:
git commit -m "feat: add new syntax highlighting theme"
git commit -m "fix: resolve tab indentation bug"
git commit -m "docs: update installation instructions"
-
Security Scan (
.github/workflows/security-scan.yml
):- Security-Scans mit Bandit und Safety
- Funktioniert in Forks und Haupt-Repository
- Keine speziellen Berechtigungen erforderlich
-
Manueller Release (
.github/workflows/manual-release.yml
):- Manuelle Versionserstellung
- Flexible Release-Notes
pip install pre-commit
pre-commit install
pre-commit run --all-files
tox
# oder spezifische Umgebungen
tox -e py39,lint,type
python -m build
# Alle Tests mit Coverage
pytest
# Spezifische Tests
pytest tests/test_basic.py
# Mit Coverage-Bericht
pytest --cov=bash_script_maker --cov=syntax_highlighter --cov-report=html
Beiträge sind willkommen! Siehe CONTRIBUTING.md für detaillierte Anweisungen.
- Fork das Repository
git clone https://github.com/securebitsorg/bash-script-maker.git
cd bash-script-maker && ./install.sh
pip install -e ".[dev]"
pre-commit install
- Entwickeln und testen
./init_github.sh
(für automatischen Push)- Pull Request erstellen
Wir freuen uns über Hilfe bei der Übersetzung des Bash-Script-Makers in neue Sprachen!
So fügen Sie eine neue Sprache hinzu:
-
Sprach-Code finden: Finden Sie den zweibuchstabigen ISO 639-1 Code für Ihre Sprache (z.B.
fr
für Französisch). -
Verzeichnis erstellen: Erstellen Sie ein neues Verzeichnis unter
locales/
. Für Französisch wäre daslocales/fr/LC_MESSAGES/
. -
Übersetzungsdatei erstellen:
- Kopieren Sie die deutsche Vorlagendatei:
cp locales/de/LC_MESSAGES/base.po locales/fr/LC_MESSAGES/base.po
- Öffnen Sie die neue
.po
-Datei mit einem Texteditor oder einem speziellen Tool wie Poedit.
- Kopieren Sie die deutsche Vorlagendatei:
-
Texte übersetzen:
- Gehen Sie die Datei durch und übersetzen Sie alle Texte, die in
msgid "..."
stehen. - Tragen Sie Ihre Übersetzung in das
msgstr "..."
-Feld direkt darunter ein. - Wichtig: Lassen Sie Platzhalter wie
{}
unverändert.
Beispiel:
msgid "Datei" msgstr "File" msgid "Script gespeichert: {}" msgstr "Script saved: {}"
- Gehen Sie die Datei durch und übersetzen Sie alle Texte, die in
-
Übersetzung kompilieren:
- Damit das Programm Ihre Übersetzung nutzen kann, muss sie kompiliert werden. Führen Sie dazu einfach das mitgelieferte Skript aus:
python compile_translations.py
- Dieses Skript benötigt eventuell die
polib
-Bibliothek. Falls nicht vorhanden, installieren Sie sie mit:pip install polib
.
-
Sprache im Menü hinzufügen:
- Öffnen Sie die Datei
bash_script_maker.py
. - Suchen Sie nach
language_menu
. - Fügen Sie einen neuen Eintrag für Ihre Sprache hinzu, ähnlich wie die bereits vorhandenen für Deutsch und Englisch.
- Öffnen Sie die Datei
-
Pull Request erstellen: Erstellen Sie einen Pull Request mit Ihren Änderungen, damit wir die neue Sprache in das Projekt aufnehmen können.
Vielen Dank für Ihre Hilfe!
# Automatisch (empfohlen)
./init_github.sh
# Oder manuell
git add .
git commit -m "Your commit message"
git push
Dieses Projekt steht unter der MIT-Lizenz. Siehe LICENSE-Datei für Details.
Erstellt von Marcel Dellmann mit ❤️ für Bash-Script-Enthusiasten\n> Automatisches Release: Testeintrag.