Ein GUI-Programm zur Erstellung von Bash-Scripts mit visueller Unterstützung
Project description
Bash-Script-Maker
Ein benutzerfreundliches GUI-Programm zur Erstellung von Bash-Scripts mit visueller Unterstützung.
Features
Hauptfunktionen
- 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
Verfügbare Befehlsbausteine
Grundlagen
- Shebang-Zeile
- Echo-Befehle
- Eingabe lesen
- Bedingte Anweisungen (if/then/else)
- Schleifen (for/while)
- Case-Anweisungen
- Funktionsdefinitionen
Zenity-Dialoge
- Info-Dialoge
- Fehler-Dialoge
- Warnungs-Dialoge
- Frage-Dialoge
- Eingabedialoge
- Dateiauswahl
- Fortschrittsbalken
- Listen-Dialoge
Systembefehle
- Dateioperationen (ls, cd, mkdir, rm, cp, mv)
- Berechtigungen (chmod)
- Prozessverwaltung (ps, kill)
- Textverarbeitung (grep, sed, awk)
Variablen und Operatoren
- Variablenzuweisung
- String-Operationen
- Array-Operationen
- Vergleichsoperatoren
Installation
Voraussetzungen
- Python 3.8 oder höher
- Tkinter (GUI-Bibliothek)
- Zenity (für Dialog-Funktionen)
- Linux-Distribution mit apt, dnf, pacman oder ähnlichem Paketmanager
Automatische Installation mit Desktop-Integration
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
Nur Desktop-Integration installieren
Falls Sie die App bereits installiert haben und nur die Desktop-Integration hinzufügen möchten:
./install_desktop_integration.sh
Manuelle Installation
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.
Python-Abhängigkeiten
pip install -r requirements.txt
Überprüfung der Installation
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.
Verfügbare Scripts
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.
Verwendung
Programm starten
Ü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
Desktop-Integration
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
Script erstellen
- 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
Tastenkombinationen
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
Editor-Tastenkombinationen
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
Automatische Formatierung
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)
Autovervollständigung
Die intelligente Autovervollständigung bietet kontextabhängige Vorschläge:
Unterstützte Vorschlagstypen
- 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
Navigation in Vorschlägen
↑/↓: Zwischen Vorschlägen navigierenEnter/Tab: Vorschlag übernehmenEscape: Vorschlagsliste schließenMausrad: Durch Liste scrollen
Kontextabhängige Vorschläge
- 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
Beispiel-Script
Das Programm erstellt automatisch ein grundlegendes Script-Template:
Technische Details
- GUI-Framework: Tkinter
- Syntax-Highlighting: Regex-basierte Mustererkennung
- Dateiformat: Reine Bash-Scripts (.sh)
- Encoding: UTF-8
- Plattform: Linux (aufgrund Zenity-Abhängigkeit)
CI/CD Pipeline
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)
Automatische Releases
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
Lokale Entwicklung
Pre-commit Hooks einrichten:
pip install pre-commit
pre-commit install
pre-commit run --all-files
Tests ausführen:
tox
# oder spezifische Umgebungen
tox -e py39,lint,type
Package bauen:
python -m build
Tests ausführen:
# 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
Mitwirken
Beiträge sind willkommen! Siehe CONTRIBUTING.md für detaillierte Anweisungen.
Schnellstart für Contributors:
- 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
Übersetzungen beisteuern
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!
Repository zu GitHub pushen:
# Automatisch (empfohlen)
./init_github.sh
# Oder manuell
git add .
git commit -m "Your commit message"
git push
Lizenz
Dieses Projekt steht unter der MIT-Lizenz. Siehe LICENSE-Datei für Details.
Autor
Erstellt von Marcel Dellmann mit ❤️ für Bash-Script-Enthusiasten\n> Automatisches Release: Testeintrag.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bash-script-maker-1.11.0.tar.gz.
File metadata
- Download URL: bash-script-maker-1.11.0.tar.gz
- Upload date:
- Size: 111.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1614e03046194b1fba0875caf1d726c3872972d358891e877287321314ec7102
|
|
| MD5 |
cc9d64d1a11b5c635f63ee941a5af007
|
|
| BLAKE2b-256 |
fe380b36b7150ea4cd2526d2d067368d51947aa43b3dc16fe9b3e4fd86dbdfe7
|
File details
Details for the file bash_script_maker-1.11.0-py3-none-any.whl.
File metadata
- Download URL: bash_script_maker-1.11.0-py3-none-any.whl
- Upload date:
- Size: 31.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d9ee57553b479ac2fa055adadeda2d2e964b08f6346c9c0996fff2d2b0685e28
|
|
| MD5 |
4a75bd22bcd4ecf132c54566101432b3
|
|
| BLAKE2b-256 |
aa174f46b3725756e232c14231c8b51067918e4478e157a459afb79a4d498d32
|