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.shDas 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.shFür Fedora/RHEL/CentOS-basierte Systeme:
./install_dnf.shFalls Sie die App bereits installiert haben und nur die Desktop-Integration hinzufügen möchten:
./install_desktop_integration.shWenn die automatischen Scripts nicht funktionieren, installieren Sie die Pakete manuell:
Ubuntu/Debian:
sudo apt update
sudo apt install python3 python3-tk python3-pip zenity xtermFedora/RHEL/CentOS:
sudo dnf install python3 python3-tkinter python3-pip zenity xtermArch Linux:
sudo pacman -S python python-tk python-pip zenity xtermAndere Distributionen:
Siehe packages.txt für detaillierte Paketlisten.
pip install -r requirements.txtNach der Installation können Sie testen, ob alles korrekt funktioniert:
./test_installation.sh
./tools/test_dependencies.pyDiese 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-makerDirekt aus dem Quellcode:
python3 bash_script_maker.pyDie 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,functionwird eingerückt - Nach
fi,done,esacwird 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-filestox
# oder spezifische Umgebungen
tox -e py39,lint,typepython -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=htmlBeiträge sind willkommen! Siehe CONTRIBUTING.md für detaillierte Anweisungen.
- Fork das Repository
git clone https://github.com/securebitsorg/bash-script-maker.gitcd bash-script-maker && ./install.shpip 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.
frfü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 pushDieses 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.