bash-script-maker 1.4.5__tar.gz → 1.5.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {bash-script-maker-1.4.5/bash_script_maker.egg-info → bash-script-maker-1.5.0}/PKG-INFO +1 -37
- {bash-script-maker-1.4.5 → bash-script-maker-1.5.0}/README.md +0 -36
- bash-script-maker-1.5.0/VERSION +1 -0
- {bash-script-maker-1.4.5 → bash-script-maker-1.5.0}/__version__.py +2 -2
- bash-script-maker-1.5.0/assets/bash-script-maker-128.png +0 -0
- bash-script-maker-1.5.0/assets/bash-script-maker-32.png +0 -0
- bash-script-maker-1.5.0/assets/bash-script-maker-48.png +0 -0
- bash-script-maker-1.5.0/assets/bash-script-maker-64.png +0 -0
- {bash-script-maker-1.4.5 → bash-script-maker-1.5.0}/bash-script-maker.desktop +4 -3
- {bash-script-maker-1.4.5 → bash-script-maker-1.5.0/bash_script_maker.egg-info}/PKG-INFO +1 -37
- {bash-script-maker-1.4.5 → bash-script-maker-1.5.0}/bash_script_maker.egg-info/SOURCES.txt +4 -3
- {bash-script-maker-1.4.5 → bash-script-maker-1.5.0}/bash_script_maker.egg-info/requires.txt +1 -0
- {bash-script-maker-1.4.5 → bash-script-maker-1.5.0}/bash_script_maker.py +63 -0
- {bash-script-maker-1.4.5 → bash-script-maker-1.5.0}/create_release.sh +0 -1
- {bash-script-maker-1.4.5 → bash-script-maker-1.5.0}/install.sh +19 -2
- {bash-script-maker-1.4.5 → bash-script-maker-1.5.0}/install_apt.sh +19 -2
- {bash-script-maker-1.4.5 → bash-script-maker-1.5.0}/install_desktop_integration.sh +16 -3
- {bash-script-maker-1.4.5 → bash-script-maker-1.5.0}/install_dnf.sh +19 -2
- {bash-script-maker-1.4.5 → bash-script-maker-1.5.0}/pyproject.toml +2 -1
- {bash-script-maker-1.4.5 → bash-script-maker-1.5.0}/requirements.txt +1 -0
- {bash-script-maker-1.4.5 → bash-script-maker-1.5.0}/uninstall.sh +0 -6
- bash-script-maker-1.4.5/VERSION +0 -1
- bash-script-maker-1.4.5/bash_script_maker_flatpak.py +0 -289
- bash-script-maker-1.4.5/build_flatpak.sh +0 -169
- bash-script-maker-1.4.5/install_flatpak.sh +0 -211
- {bash-script-maker-1.4.5 → bash-script-maker-1.5.0}/LICENSE +0 -0
- {bash-script-maker-1.4.5 → bash-script-maker-1.5.0}/MANIFEST.in +0 -0
- {bash-script-maker-1.4.5 → bash-script-maker-1.5.0}/assets/bash-script-maker-16.png +0 -0
- {bash-script-maker-1.4.5 → bash-script-maker-1.5.0}/assets/bash-script-maker.svg +0 -0
- {bash-script-maker-1.4.5 → bash-script-maker-1.5.0}/assets.py +0 -0
- {bash-script-maker-1.4.5 → bash-script-maker-1.5.0}/bash_script_maker.egg-info/dependency_links.txt +0 -0
- {bash-script-maker-1.4.5 → bash-script-maker-1.5.0}/bash_script_maker.egg-info/entry_points.txt +0 -0
- {bash-script-maker-1.4.5 → bash-script-maker-1.5.0}/bash_script_maker.egg-info/not-zip-safe +0 -0
- {bash-script-maker-1.4.5 → bash-script-maker-1.5.0}/bash_script_maker.egg-info/top_level.txt +0 -0
- {bash-script-maker-1.4.5 → bash-script-maker-1.5.0}/beispiel_script.sh +0 -0
- {bash-script-maker-1.4.5 → bash-script-maker-1.5.0}/compile_translations.py +0 -0
- {bash-script-maker-1.4.5 → bash-script-maker-1.5.0}/custom_dialogs.py +0 -0
- {bash-script-maker-1.4.5 → bash-script-maker-1.5.0}/dev-requirements.txt +0 -0
- {bash-script-maker-1.4.5 → bash-script-maker-1.5.0}/init_github.sh +0 -0
- {bash-script-maker-1.4.5 → bash-script-maker-1.5.0}/locales/de/LC_MESSAGES/base.po +0 -0
- {bash-script-maker-1.4.5 → bash-script-maker-1.5.0}/locales/en/LC_MESSAGES/base.po +0 -0
- {bash-script-maker-1.4.5 → bash-script-maker-1.5.0}/localization.py +0 -0
- {bash-script-maker-1.4.5 → bash-script-maker-1.5.0}/mein_script.sh +0 -0
- {bash-script-maker-1.4.5 → bash-script-maker-1.5.0}/packages.txt +0 -0
- {bash-script-maker-1.4.5 → bash-script-maker-1.5.0}/setup.cfg +0 -0
- {bash-script-maker-1.4.5 → bash-script-maker-1.5.0}/setup.py +0 -0
- {bash-script-maker-1.4.5 → bash-script-maker-1.5.0}/setup_flatpak.py +0 -0
- {bash-script-maker-1.4.5 → bash-script-maker-1.5.0}/start.sh +0 -0
- {bash-script-maker-1.4.5 → bash-script-maker-1.5.0}/syntax_highlighter.py +0 -0
- {bash-script-maker-1.4.5 → bash-script-maker-1.5.0}/test_installation.sh +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: bash-script-maker
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.5.0
|
4
4
|
Summary: Ein GUI-Programm zur Erstellung von Bash-Scripts mit visueller Unterstützung
|
5
5
|
Home-page: https://github.com/securebitsorg/bash-script-maker
|
6
6
|
Author: Marcel Dellmann
|
@@ -97,33 +97,6 @@ Ein benutzerfreundliches GUI-Programm zur Erstellung von Bash-Scripts mit visuel
|
|
97
97
|
- Zenity (für Dialog-Funktionen)
|
98
98
|
- Linux-Distribution mit apt, dnf, pacman oder ähnlichem Paketmanager
|
99
99
|
|
100
|
-
### Flatpak-Installation (Empfohlen)
|
101
|
-
|
102
|
-
**Flatpak ist die modernste und sicherste Installationsmethode:**
|
103
|
-
|
104
|
-
```bash
|
105
|
-
# Flatpak installieren (falls noch nicht vorhanden)
|
106
|
-
sudo dnf install flatpak # Fedora/RHEL
|
107
|
-
sudo apt install flatpak # Ubuntu/Debian
|
108
|
-
sudo pacman -S flatpak # Arch Linux
|
109
|
-
|
110
|
-
# Flathub-Repository hinzufügen
|
111
|
-
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
112
|
-
|
113
|
-
# App installieren (wenn verfügbar)
|
114
|
-
flatpak install flathub org.securebits.bashscriptmaker
|
115
|
-
|
116
|
-
# App starten
|
117
|
-
flatpak run org.securebits.bashscriptmaker
|
118
|
-
```
|
119
|
-
|
120
|
-
**Vorteile von Flatpak:**
|
121
|
-
- ✅ Vollständig sandboxed und sicher
|
122
|
-
- ✅ Automatische Updates
|
123
|
-
- ✅ Keine System-Abhängigkeiten
|
124
|
-
- ✅ Funktioniert auf allen Linux-Distributionen
|
125
|
-
- ✅ Desktop-Integration inklusive
|
126
|
-
|
127
100
|
### Automatische Installation mit Desktop-Integration
|
128
101
|
|
129
102
|
**Empfohlene Methode (automatische Erkennung):**
|
@@ -147,15 +120,6 @@ Für Fedora/RHEL/CentOS-basierte Systeme:
|
|
147
120
|
./install_dnf.sh
|
148
121
|
```
|
149
122
|
|
150
|
-
### Flatpak-Paket selbst erstellen
|
151
|
-
|
152
|
-
```bash
|
153
|
-
# Flatpak-Paket lokal erstellen
|
154
|
-
./build_flatpak.sh
|
155
|
-
|
156
|
-
# Erstelltes Paket installieren
|
157
|
-
flatpak install build/flatpak/bash-script-maker.flatpak
|
158
|
-
```
|
159
123
|
|
160
124
|
### Nur Desktop-Integration installieren
|
161
125
|
|
@@ -64,33 +64,6 @@ Ein benutzerfreundliches GUI-Programm zur Erstellung von Bash-Scripts mit visuel
|
|
64
64
|
- Zenity (für Dialog-Funktionen)
|
65
65
|
- Linux-Distribution mit apt, dnf, pacman oder ähnlichem Paketmanager
|
66
66
|
|
67
|
-
### Flatpak-Installation (Empfohlen)
|
68
|
-
|
69
|
-
**Flatpak ist die modernste und sicherste Installationsmethode:**
|
70
|
-
|
71
|
-
```bash
|
72
|
-
# Flatpak installieren (falls noch nicht vorhanden)
|
73
|
-
sudo dnf install flatpak # Fedora/RHEL
|
74
|
-
sudo apt install flatpak # Ubuntu/Debian
|
75
|
-
sudo pacman -S flatpak # Arch Linux
|
76
|
-
|
77
|
-
# Flathub-Repository hinzufügen
|
78
|
-
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
79
|
-
|
80
|
-
# App installieren (wenn verfügbar)
|
81
|
-
flatpak install flathub org.securebits.bashscriptmaker
|
82
|
-
|
83
|
-
# App starten
|
84
|
-
flatpak run org.securebits.bashscriptmaker
|
85
|
-
```
|
86
|
-
|
87
|
-
**Vorteile von Flatpak:**
|
88
|
-
- ✅ Vollständig sandboxed und sicher
|
89
|
-
- ✅ Automatische Updates
|
90
|
-
- ✅ Keine System-Abhängigkeiten
|
91
|
-
- ✅ Funktioniert auf allen Linux-Distributionen
|
92
|
-
- ✅ Desktop-Integration inklusive
|
93
|
-
|
94
67
|
### Automatische Installation mit Desktop-Integration
|
95
68
|
|
96
69
|
**Empfohlene Methode (automatische Erkennung):**
|
@@ -114,15 +87,6 @@ Für Fedora/RHEL/CentOS-basierte Systeme:
|
|
114
87
|
./install_dnf.sh
|
115
88
|
```
|
116
89
|
|
117
|
-
### Flatpak-Paket selbst erstellen
|
118
|
-
|
119
|
-
```bash
|
120
|
-
# Flatpak-Paket lokal erstellen
|
121
|
-
./build_flatpak.sh
|
122
|
-
|
123
|
-
# Erstelltes Paket installieren
|
124
|
-
flatpak install build/flatpak/bash-script-maker.flatpak
|
125
|
-
```
|
126
90
|
|
127
91
|
### Nur Desktop-Integration installieren
|
128
92
|
|
@@ -0,0 +1 @@
|
|
1
|
+
1.5.0
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -2,9 +2,10 @@
|
|
2
2
|
Name=Bash-Script-Maker
|
3
3
|
Comment=Ein GUI-Programm zur Erstellung von Bash-Scripts
|
4
4
|
Exec=bash-script-maker
|
5
|
-
Icon=bash-script-maker
|
5
|
+
Icon=bash-script-maker.svg
|
6
6
|
Terminal=false
|
7
7
|
Type=Application
|
8
|
-
Categories=Development;Utility;
|
9
|
-
Keywords=bash;script;editor;generator;
|
8
|
+
Categories=Development;Utility;TextEditor;
|
9
|
+
Keywords=bash;script;editor;generator;development;
|
10
10
|
StartupWMClass=bash-script-maker
|
11
|
+
MimeType=text/x-shellscript;application/x-shellscript;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: bash-script-maker
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.5.0
|
4
4
|
Summary: Ein GUI-Programm zur Erstellung von Bash-Scripts mit visueller Unterstützung
|
5
5
|
Home-page: https://github.com/securebitsorg/bash-script-maker
|
6
6
|
Author: Marcel Dellmann
|
@@ -97,33 +97,6 @@ Ein benutzerfreundliches GUI-Programm zur Erstellung von Bash-Scripts mit visuel
|
|
97
97
|
- Zenity (für Dialog-Funktionen)
|
98
98
|
- Linux-Distribution mit apt, dnf, pacman oder ähnlichem Paketmanager
|
99
99
|
|
100
|
-
### Flatpak-Installation (Empfohlen)
|
101
|
-
|
102
|
-
**Flatpak ist die modernste und sicherste Installationsmethode:**
|
103
|
-
|
104
|
-
```bash
|
105
|
-
# Flatpak installieren (falls noch nicht vorhanden)
|
106
|
-
sudo dnf install flatpak # Fedora/RHEL
|
107
|
-
sudo apt install flatpak # Ubuntu/Debian
|
108
|
-
sudo pacman -S flatpak # Arch Linux
|
109
|
-
|
110
|
-
# Flathub-Repository hinzufügen
|
111
|
-
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
112
|
-
|
113
|
-
# App installieren (wenn verfügbar)
|
114
|
-
flatpak install flathub org.securebits.bashscriptmaker
|
115
|
-
|
116
|
-
# App starten
|
117
|
-
flatpak run org.securebits.bashscriptmaker
|
118
|
-
```
|
119
|
-
|
120
|
-
**Vorteile von Flatpak:**
|
121
|
-
- ✅ Vollständig sandboxed und sicher
|
122
|
-
- ✅ Automatische Updates
|
123
|
-
- ✅ Keine System-Abhängigkeiten
|
124
|
-
- ✅ Funktioniert auf allen Linux-Distributionen
|
125
|
-
- ✅ Desktop-Integration inklusive
|
126
|
-
|
127
100
|
### Automatische Installation mit Desktop-Integration
|
128
101
|
|
129
102
|
**Empfohlene Methode (automatische Erkennung):**
|
@@ -147,15 +120,6 @@ Für Fedora/RHEL/CentOS-basierte Systeme:
|
|
147
120
|
./install_dnf.sh
|
148
121
|
```
|
149
122
|
|
150
|
-
### Flatpak-Paket selbst erstellen
|
151
|
-
|
152
|
-
```bash
|
153
|
-
# Flatpak-Paket lokal erstellen
|
154
|
-
./build_flatpak.sh
|
155
|
-
|
156
|
-
# Erstelltes Paket installieren
|
157
|
-
flatpak install build/flatpak/bash-script-maker.flatpak
|
158
|
-
```
|
159
123
|
|
160
124
|
### Nur Desktop-Integration installieren
|
161
125
|
|
@@ -6,9 +6,7 @@ __version__.py
|
|
6
6
|
assets.py
|
7
7
|
bash-script-maker.desktop
|
8
8
|
bash_script_maker.py
|
9
|
-
bash_script_maker_flatpak.py
|
10
9
|
beispiel_script.sh
|
11
|
-
build_flatpak.sh
|
12
10
|
compile_translations.py
|
13
11
|
create_release.sh
|
14
12
|
custom_dialogs.py
|
@@ -18,7 +16,6 @@ install.sh
|
|
18
16
|
install_apt.sh
|
19
17
|
install_desktop_integration.sh
|
20
18
|
install_dnf.sh
|
21
|
-
install_flatpak.sh
|
22
19
|
localization.py
|
23
20
|
mein_script.sh
|
24
21
|
packages.txt
|
@@ -30,7 +27,11 @@ start.sh
|
|
30
27
|
syntax_highlighter.py
|
31
28
|
test_installation.sh
|
32
29
|
uninstall.sh
|
30
|
+
assets/bash-script-maker-128.png
|
33
31
|
assets/bash-script-maker-16.png
|
32
|
+
assets/bash-script-maker-32.png
|
33
|
+
assets/bash-script-maker-48.png
|
34
|
+
assets/bash-script-maker-64.png
|
34
35
|
assets/bash-script-maker.svg
|
35
36
|
bash_script_maker.egg-info/PKG-INFO
|
36
37
|
bash_script_maker.egg-info/SOURCES.txt
|
@@ -236,6 +236,9 @@ class BashScriptMaker:
|
|
236
236
|
self.root = root
|
237
237
|
self.root.title("Bash-Script-Maker")
|
238
238
|
self.root.geometry("1200x800")
|
239
|
+
|
240
|
+
# Icon setzen
|
241
|
+
self.set_window_icon()
|
239
242
|
|
240
243
|
# Variablen für den letzten Pfad
|
241
244
|
self.last_path = os.path.expanduser("~")
|
@@ -257,6 +260,66 @@ class BashScriptMaker:
|
|
257
260
|
+ "\n\n"
|
258
261
|
)
|
259
262
|
|
263
|
+
def set_window_icon(self):
|
264
|
+
"""Setzt das Fenster-Icon für Titelleiste und Taskleiste"""
|
265
|
+
try:
|
266
|
+
# Pfad zum Icon ermitteln
|
267
|
+
script_dir = os.path.dirname(os.path.abspath(__file__))
|
268
|
+
|
269
|
+
# Icon-Größen die wir haben
|
270
|
+
icon_sizes = [16, 32, 48, 64, 128]
|
271
|
+
icon_files = []
|
272
|
+
|
273
|
+
# Verfügbare Icon-Dateien sammeln
|
274
|
+
for size in icon_sizes:
|
275
|
+
icon_path = os.path.join(script_dir, "assets", f"bash-script-maker-{size}.png")
|
276
|
+
if os.path.exists(icon_path):
|
277
|
+
icon_files.append(icon_path)
|
278
|
+
|
279
|
+
# Fallback auf 16px Icon
|
280
|
+
if not icon_files:
|
281
|
+
fallback_path = os.path.join(script_dir, "assets", "bash-script-maker-16.png")
|
282
|
+
if os.path.exists(fallback_path):
|
283
|
+
icon_files.append(fallback_path)
|
284
|
+
|
285
|
+
if icon_files:
|
286
|
+
# PNG-Icons verwenden
|
287
|
+
try:
|
288
|
+
from PIL import Image, ImageTk
|
289
|
+
# Alle verfügbaren Icon-Größen laden
|
290
|
+
icons = []
|
291
|
+
|
292
|
+
for icon_path in icon_files:
|
293
|
+
img = Image.open(icon_path)
|
294
|
+
photo = ImageTk.PhotoImage(img)
|
295
|
+
icons.append(photo)
|
296
|
+
|
297
|
+
# Haupticon setzen (alle Größen)
|
298
|
+
self.root.iconphoto(True, *icons)
|
299
|
+
print(f"Icons gesetzt: {len(icons)} Größen")
|
300
|
+
|
301
|
+
except ImportError:
|
302
|
+
# Fallback ohne PIL - verwende größtes verfügbares Icon
|
303
|
+
try:
|
304
|
+
# Größtes Icon zuerst versuchen
|
305
|
+
best_icon = icon_files[-1] # Letztes in der Liste (größtes)
|
306
|
+
icon = tk.PhotoImage(file=best_icon)
|
307
|
+
self.root.iconphoto(True, icon)
|
308
|
+
print(f"Icon gesetzt (ohne PIL): {best_icon}")
|
309
|
+
except tk.TclError as e:
|
310
|
+
print(f"Fehler beim Laden des PNG-Icons: {e}")
|
311
|
+
|
312
|
+
else:
|
313
|
+
# Kein PNG gefunden, prüfe SVG
|
314
|
+
svg_icon_path = os.path.join(script_dir, "assets", "bash-script-maker.svg")
|
315
|
+
if os.path.exists(svg_icon_path):
|
316
|
+
print(f"SVG-Icon gefunden, aber PNG wird für Tkinter bevorzugt: {svg_icon_path}")
|
317
|
+
else:
|
318
|
+
print("Keine Icon-Datei gefunden in assets/")
|
319
|
+
|
320
|
+
except Exception as e:
|
321
|
+
print(f"Fehler beim Setzen des Icons: {e}")
|
322
|
+
|
260
323
|
def create_menu(self):
|
261
324
|
"""Erstellt das Menü der Anwendung"""
|
262
325
|
menubar = tk.Menu(self.root)
|
@@ -128,7 +128,6 @@ print_success "Release v$NEW_VERSION erfolgreich erstellt!"
|
|
128
128
|
print_status "GitHub Actions wird automatisch:"
|
129
129
|
print_status " - GitHub Release erstellen"
|
130
130
|
print_status " - Python-Pakete bauen"
|
131
|
-
print_status " - Flatpak-Paket erstellen"
|
132
131
|
print_status " - Auf PyPI veröffentlichen (falls konfiguriert)"
|
133
132
|
print_status ""
|
134
133
|
print_status "Überprüfen Sie den Fortschritt unter:"
|
@@ -295,10 +295,27 @@ if main_installation; then
|
|
295
295
|
mkdir -p ~/.local/share/applications
|
296
296
|
mkdir -p ~/.local/share/icons/hicolor/scalable/apps
|
297
297
|
|
298
|
-
# Kopiere
|
299
|
-
cp bash-script-maker.desktop ~/.local/share/applications/
|
298
|
+
# Kopiere Icon
|
300
299
|
cp assets/bash-script-maker.svg ~/.local/share/icons/hicolor/scalable/apps/
|
301
300
|
|
301
|
+
# Erstelle Desktop-Datei mit korrekten absoluten Pfaden
|
302
|
+
cat > ~/.local/share/applications/bash-script-maker.desktop << EOF
|
303
|
+
[Desktop Entry]
|
304
|
+
Name=Bash-Script-Maker
|
305
|
+
Comment=Ein GUI-Programm zur Erstellung von Bash-Scripts
|
306
|
+
Exec=$HOME/.local/bin/bash-script-maker
|
307
|
+
Icon=$HOME/.local/share/icons/hicolor/scalable/apps/bash-script-maker.svg
|
308
|
+
Terminal=false
|
309
|
+
Type=Application
|
310
|
+
Categories=Development;Utility;TextEditor;
|
311
|
+
Keywords=bash;script;editor;generator;development;
|
312
|
+
StartupWMClass=bash-script-maker
|
313
|
+
MimeType=text/x-shellscript;application/x-shellscript;
|
314
|
+
EOF
|
315
|
+
|
316
|
+
# Berechtigungen setzen
|
317
|
+
chmod +x ~/.local/share/applications/bash-script-maker.desktop
|
318
|
+
|
302
319
|
# Desktop-Datenbank aktualisieren
|
303
320
|
if command -v update-desktop-database &> /dev/null; then
|
304
321
|
update-desktop-database ~/.local/share/applications
|
@@ -161,10 +161,27 @@ if [ -f "bash-script-maker.desktop" ] && [ -f "assets/bash-script-maker.svg" ];
|
|
161
161
|
mkdir -p ~/.local/share/applications
|
162
162
|
mkdir -p ~/.local/share/icons/hicolor/scalable/apps
|
163
163
|
|
164
|
-
# Kopiere
|
165
|
-
cp bash-script-maker.desktop ~/.local/share/applications/
|
164
|
+
# Kopiere Icon
|
166
165
|
cp assets/bash-script-maker.svg ~/.local/share/icons/hicolor/scalable/apps/
|
167
166
|
|
167
|
+
# Erstelle Desktop-Datei mit korrekten absoluten Pfaden
|
168
|
+
cat > ~/.local/share/applications/bash-script-maker.desktop << EOF
|
169
|
+
[Desktop Entry]
|
170
|
+
Name=Bash-Script-Maker
|
171
|
+
Comment=Ein GUI-Programm zur Erstellung von Bash-Scripts
|
172
|
+
Exec=$HOME/.local/bin/bash-script-maker
|
173
|
+
Icon=$HOME/.local/share/icons/hicolor/scalable/apps/bash-script-maker.svg
|
174
|
+
Terminal=false
|
175
|
+
Type=Application
|
176
|
+
Categories=Development;Utility;TextEditor;
|
177
|
+
Keywords=bash;script;editor;generator;development;
|
178
|
+
StartupWMClass=bash-script-maker
|
179
|
+
MimeType=text/x-shellscript;application/x-shellscript;
|
180
|
+
EOF
|
181
|
+
|
182
|
+
# Berechtigungen setzen
|
183
|
+
chmod +x ~/.local/share/applications/bash-script-maker.desktop
|
184
|
+
|
168
185
|
# Desktop-Datenbank aktualisieren
|
169
186
|
if command -v update-desktop-database &> /dev/null; then
|
170
187
|
update-desktop-database ~/.local/share/applications
|
@@ -42,12 +42,25 @@ print_status "Erstelle Verzeichnisse..."
|
|
42
42
|
mkdir -p ~/.local/share/applications
|
43
43
|
mkdir -p ~/.local/share/icons/hicolor/scalable/apps
|
44
44
|
|
45
|
-
#
|
45
|
+
# Erstelle Desktop-Datei mit korrekten absoluten Pfaden
|
46
46
|
print_status "Installiere Desktop-Datei..."
|
47
|
-
if
|
47
|
+
if cat > ~/.local/share/applications/bash-script-maker.desktop << EOF
|
48
|
+
[Desktop Entry]
|
49
|
+
Name=Bash-Script-Maker
|
50
|
+
Comment=Ein GUI-Programm zur Erstellung von Bash-Scripts
|
51
|
+
Exec=$HOME/.local/bin/bash-script-maker
|
52
|
+
Icon=$HOME/.local/share/icons/hicolor/scalable/apps/bash-script-maker.svg
|
53
|
+
Terminal=false
|
54
|
+
Type=Application
|
55
|
+
Categories=Development;Utility;TextEditor;
|
56
|
+
Keywords=bash;script;editor;generator;development;
|
57
|
+
StartupWMClass=bash-script-maker
|
58
|
+
MimeType=text/x-shellscript;application/x-shellscript;
|
59
|
+
EOF
|
60
|
+
then
|
48
61
|
print_success "Desktop-Datei installiert: ~/.local/share/applications/bash-script-maker.desktop"
|
49
62
|
else
|
50
|
-
print_error "Fehler beim
|
63
|
+
print_error "Fehler beim Erstellen der Desktop-Datei!"
|
51
64
|
exit 1
|
52
65
|
fi
|
53
66
|
|
@@ -154,10 +154,27 @@ if [ -f "bash-script-maker.desktop" ] && [ -f "assets/bash-script-maker.svg" ];
|
|
154
154
|
mkdir -p ~/.local/share/applications
|
155
155
|
mkdir -p ~/.local/share/icons/hicolor/scalable/apps
|
156
156
|
|
157
|
-
# Kopiere
|
158
|
-
cp bash-script-maker.desktop ~/.local/share/applications/
|
157
|
+
# Kopiere Icon
|
159
158
|
cp assets/bash-script-maker.svg ~/.local/share/icons/hicolor/scalable/apps/
|
160
159
|
|
160
|
+
# Erstelle Desktop-Datei mit korrekten absoluten Pfaden
|
161
|
+
cat > ~/.local/share/applications/bash-script-maker.desktop << EOF
|
162
|
+
[Desktop Entry]
|
163
|
+
Name=Bash-Script-Maker
|
164
|
+
Comment=Ein GUI-Programm zur Erstellung von Bash-Scripts
|
165
|
+
Exec=$HOME/.local/bin/bash-script-maker
|
166
|
+
Icon=$HOME/.local/share/icons/hicolor/scalable/apps/bash-script-maker.svg
|
167
|
+
Terminal=false
|
168
|
+
Type=Application
|
169
|
+
Categories=Development;Utility;TextEditor;
|
170
|
+
Keywords=bash;script;editor;generator;development;
|
171
|
+
StartupWMClass=bash-script-maker
|
172
|
+
MimeType=text/x-shellscript;application/x-shellscript;
|
173
|
+
EOF
|
174
|
+
|
175
|
+
# Berechtigungen setzen
|
176
|
+
chmod +x ~/.local/share/applications/bash-script-maker.desktop
|
177
|
+
|
161
178
|
# Desktop-Datenbank aktualisieren
|
162
179
|
if command -v update-desktop-database &> /dev/null; then
|
163
180
|
update-desktop-database ~/.local/share/applications
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
4
4
|
|
5
5
|
[project]
|
6
6
|
name = "bash-script-maker"
|
7
|
-
version = "1.
|
7
|
+
version = "1.5.0"
|
8
8
|
description = "Ein GUI-Programm zur Erstellung von Bash-Scripts mit visueller Unterstützung"
|
9
9
|
readme = "README.md"
|
10
10
|
license = {text = "MIT"}
|
@@ -34,6 +34,7 @@ requires-python = ">=3.8"
|
|
34
34
|
dependencies = [
|
35
35
|
"ttkbootstrap>=1.10.1",
|
36
36
|
"pygments>=2.15.1",
|
37
|
+
"Pillow>=9.0.0",
|
37
38
|
]
|
38
39
|
|
39
40
|
[project.optional-dependencies]
|
@@ -101,12 +101,6 @@ if [[ $USER_ONLY -eq 0 ]] && need_sudo; then
|
|
101
101
|
sudo rm -f "$ICON_SYS1" "$ICON_SYS2" 2>/dev/null || true
|
102
102
|
fi
|
103
103
|
|
104
|
-
if command -v flatpak >/dev/null 2>&1; then
|
105
|
-
if flatpak list --app | grep -q '^org\.securebits\.bashscriptmaker'; then
|
106
|
-
log "Entferne Flatpak-App org.securebits.bashscriptmaker…"
|
107
|
-
flatpak uninstall -y org.securebits.bashscriptmaker >/dev/null 2>&1 || true
|
108
|
-
fi
|
109
|
-
fi
|
110
104
|
|
111
105
|
if [[ $KEEP_CONFIG -eq 0 ]]; then
|
112
106
|
log "Entferne Konfigurations-/Cache-Verzeichnisse…"
|
bash-script-maker-1.4.5/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
1.4.5
|
@@ -1,289 +0,0 @@
|
|
1
|
-
#!/usr/bin/env python3
|
2
|
-
# -*- coding: utf-8 -*-
|
3
|
-
"""
|
4
|
-
Bash-Script-Maker - Vereinfachte Flatpak-Version
|
5
|
-
Ein benutzerfreundliches GUI-Programm zur Erstellung von Bash-Scripts
|
6
|
-
"""
|
7
|
-
|
8
|
-
import tkinter as tk
|
9
|
-
from tkinter import ttk, messagebox, filedialog, scrolledtext
|
10
|
-
import os
|
11
|
-
import subprocess
|
12
|
-
import sys
|
13
|
-
import threading
|
14
|
-
|
15
|
-
class BashScriptMaker:
|
16
|
-
def __init__(self, root):
|
17
|
-
self.root = root
|
18
|
-
self.root.title("Bash Script Maker") # Korrigierter Titel
|
19
|
-
self.root.geometry("1000x700")
|
20
|
-
|
21
|
-
# Set window class for proper desktop integration
|
22
|
-
self.root.wm_class("Bash-Script-Maker", "Bash-Script-Maker")
|
23
|
-
|
24
|
-
# Variables
|
25
|
-
self.current_file = None
|
26
|
-
|
27
|
-
# Create GUI
|
28
|
-
self.create_widgets()
|
29
|
-
|
30
|
-
def create_widgets(self):
|
31
|
-
# Menu
|
32
|
-
menubar = tk.Menu(self.root)
|
33
|
-
self.root.config(menu=menubar)
|
34
|
-
|
35
|
-
file_menu = tk.Menu(menubar, tearoff=0)
|
36
|
-
menubar.add_cascade(label="Datei", menu=file_menu)
|
37
|
-
file_menu.add_command(label="Neu", command=self.new_file)
|
38
|
-
file_menu.add_command(label="Öffnen", command=self.open_file)
|
39
|
-
file_menu.add_command(label="Speichern", command=self.save_file)
|
40
|
-
file_menu.add_command(label="Speichern unter...", command=self.save_as_file)
|
41
|
-
file_menu.add_separator()
|
42
|
-
file_menu.add_command(label="Beenden", command=self.root.quit)
|
43
|
-
|
44
|
-
run_menu = tk.Menu(menubar, tearoff=0)
|
45
|
-
menubar.add_cascade(label="Ausführen", menu=run_menu)
|
46
|
-
run_menu.add_command(label="Script ausführen", command=self.run_script)
|
47
|
-
|
48
|
-
# Main frame
|
49
|
-
main_frame = ttk.Frame(self.root)
|
50
|
-
main_frame.pack(fill=tk.BOTH, expand=True, padx=10, pady=10)
|
51
|
-
|
52
|
-
# Left panel - Commands
|
53
|
-
left_frame = ttk.LabelFrame(main_frame, text="Befehle")
|
54
|
-
left_frame.pack(side=tk.LEFT, fill=tk.Y, padx=(0, 10))
|
55
|
-
|
56
|
-
# Command buttons
|
57
|
-
commands = [
|
58
|
-
("Shebang", self.insert_shebang),
|
59
|
-
("Echo", self.insert_echo),
|
60
|
-
("Variable", self.insert_variable),
|
61
|
-
("If-Statement", self.insert_if),
|
62
|
-
("For-Loop", self.insert_for),
|
63
|
-
("While-Loop", self.insert_while),
|
64
|
-
("Function", self.insert_function),
|
65
|
-
("Kommentar", self.insert_comment),
|
66
|
-
]
|
67
|
-
|
68
|
-
for cmd_name, cmd_func in commands:
|
69
|
-
btn = ttk.Button(left_frame, text=cmd_name, command=cmd_func, width=15)
|
70
|
-
btn.pack(pady=2, padx=5, fill=tk.X)
|
71
|
-
|
72
|
-
# Right panel - Editor
|
73
|
-
right_frame = ttk.Frame(main_frame)
|
74
|
-
right_frame.pack(side=tk.RIGHT, fill=tk.BOTH, expand=True)
|
75
|
-
|
76
|
-
# Editor
|
77
|
-
self.text_editor = scrolledtext.ScrolledText(
|
78
|
-
right_frame,
|
79
|
-
wrap=tk.NONE,
|
80
|
-
font=("Monaco", 11) if sys.platform == "darwin" else ("Consolas", 11),
|
81
|
-
bg="#1e1e1e",
|
82
|
-
fg="#d4d4d4",
|
83
|
-
insertbackground="#ffffff",
|
84
|
-
selectbackground="#264f78",
|
85
|
-
relief=tk.FLAT,
|
86
|
-
borderwidth=1
|
87
|
-
)
|
88
|
-
self.text_editor.pack(fill=tk.BOTH, expand=True)
|
89
|
-
|
90
|
-
# Add basic syntax highlighting
|
91
|
-
self.setup_syntax_highlighting()
|
92
|
-
|
93
|
-
# Status bar
|
94
|
-
self.status_bar = ttk.Label(self.root, text="Bereit | Flatpak-Version", relief=tk.SUNKEN, anchor=tk.W)
|
95
|
-
self.status_bar.pack(side=tk.BOTTOM, fill=tk.X, padx=10, pady=(0, 10))
|
96
|
-
|
97
|
-
def setup_syntax_highlighting(self):
|
98
|
-
"""Setup basic syntax highlighting for bash scripts"""
|
99
|
-
# Define colors for syntax highlighting
|
100
|
-
self.text_editor.tag_config("comment", foreground="#6a9955", font=("Consolas", 11, "italic"))
|
101
|
-
self.text_editor.tag_config("keyword", foreground="#569cd6", font=("Consolas", 11, "bold"))
|
102
|
-
self.text_editor.tag_config("string", foreground="#ce9178")
|
103
|
-
self.text_editor.tag_config("variable", foreground="#9cdcfe")
|
104
|
-
self.text_editor.tag_config("operator", foreground="#d4d4d4")
|
105
|
-
|
106
|
-
# Bind text change event for live highlighting
|
107
|
-
self.text_editor.bind("<KeyRelease>", self.on_text_change)
|
108
|
-
|
109
|
-
def on_text_change(self, event=None):
|
110
|
-
"""Apply basic syntax highlighting on text change"""
|
111
|
-
import re
|
112
|
-
content = self.text_editor.get("1.0", tk.END)
|
113
|
-
|
114
|
-
# Clear existing tags
|
115
|
-
for tag in ["comment", "keyword", "string", "variable"]:
|
116
|
-
self.text_editor.tag_delete(tag)
|
117
|
-
|
118
|
-
# Highlight comments
|
119
|
-
for match in re.finditer(r'#.*', content):
|
120
|
-
start_line = content[:match.start()].count('\n') + 1
|
121
|
-
start_col = match.start() - content.rfind('\n', 0, match.start()) - 1
|
122
|
-
end_line = content[:match.end()].count('\n') + 1
|
123
|
-
end_col = match.end() - content.rfind('\n', 0, match.end()) - 1
|
124
|
-
self.text_editor.tag_add("comment", f"{start_line}.{start_col}", f"{end_line}.{end_col}")
|
125
|
-
|
126
|
-
# Highlight bash keywords
|
127
|
-
keywords = r'\b(if|then|else|elif|fi|for|while|do|done|case|esac|function|return|exit|break|continue|echo|read|export|local)\b'
|
128
|
-
for match in re.finditer(keywords, content):
|
129
|
-
start_line = content[:match.start()].count('\n') + 1
|
130
|
-
start_col = match.start() - content.rfind('\n', 0, match.start()) - 1
|
131
|
-
end_line = content[:match.end()].count('\n') + 1
|
132
|
-
end_col = match.end() - content.rfind('\n', 0, match.end()) - 1
|
133
|
-
self.text_editor.tag_add("keyword", f"{start_line}.{start_col}", f"{end_line}.{end_col}")
|
134
|
-
|
135
|
-
# Highlight strings
|
136
|
-
for match in re.finditer(r'"[^"]*"', content):
|
137
|
-
start_line = content[:match.start()].count('\n') + 1
|
138
|
-
start_col = match.start() - content.rfind('\n', 0, match.start()) - 1
|
139
|
-
end_line = content[:match.end()].count('\n') + 1
|
140
|
-
end_col = match.end() - content.rfind('\n', 0, match.end()) - 1
|
141
|
-
self.text_editor.tag_add("string", f"{start_line}.{start_col}", f"{end_line}.{end_col}")
|
142
|
-
|
143
|
-
# Highlight variables
|
144
|
-
for match in re.finditer(r'\$\w+|\$\{[^}]+\}', content):
|
145
|
-
start_line = content[:match.start()].count('\n') + 1
|
146
|
-
start_col = match.start() - content.rfind('\n', 0, match.start()) - 1
|
147
|
-
end_line = content[:match.end()].count('\n') + 1
|
148
|
-
end_col = match.end() - content.rfind('\n', 0, match.end()) - 1
|
149
|
-
self.text_editor.tag_add("variable", f"{start_line}.{start_col}", f"{end_line}.{end_col}")
|
150
|
-
|
151
|
-
def insert_shebang(self):
|
152
|
-
self.text_editor.insert(tk.INSERT, "#!/bin/bash\n")
|
153
|
-
|
154
|
-
def insert_echo(self):
|
155
|
-
self.text_editor.insert(tk.INSERT, 'echo "Hello World"\n')
|
156
|
-
|
157
|
-
def insert_variable(self):
|
158
|
-
self.text_editor.insert(tk.INSERT, 'VARIABLE="value"\necho "$VARIABLE"\n')
|
159
|
-
|
160
|
-
def insert_if(self):
|
161
|
-
template = '''if [ condition ]; then
|
162
|
-
# commands
|
163
|
-
elif [ condition ]; then
|
164
|
-
# commands
|
165
|
-
else
|
166
|
-
# commands
|
167
|
-
fi
|
168
|
-
'''
|
169
|
-
self.text_editor.insert(tk.INSERT, template)
|
170
|
-
|
171
|
-
def insert_for(self):
|
172
|
-
template = '''for item in list; do
|
173
|
-
echo "$item"
|
174
|
-
done
|
175
|
-
'''
|
176
|
-
self.text_editor.insert(tk.INSERT, template)
|
177
|
-
|
178
|
-
def insert_while(self):
|
179
|
-
template = '''while [ condition ]; do
|
180
|
-
# commands
|
181
|
-
done
|
182
|
-
'''
|
183
|
-
self.text_editor.insert(tk.INSERT, template)
|
184
|
-
|
185
|
-
def insert_function(self):
|
186
|
-
template = '''function_name() {
|
187
|
-
# commands
|
188
|
-
return 0
|
189
|
-
}
|
190
|
-
'''
|
191
|
-
self.text_editor.insert(tk.INSERT, template)
|
192
|
-
|
193
|
-
def insert_comment(self):
|
194
|
-
self.text_editor.insert(tk.INSERT, "# Kommentar\n")
|
195
|
-
|
196
|
-
def new_file(self):
|
197
|
-
if messagebox.askyesno("Neu", "Aktuelles Script verwerfen?"):
|
198
|
-
self.text_editor.delete(1.0, tk.END)
|
199
|
-
self.current_file = None
|
200
|
-
self.update_title()
|
201
|
-
|
202
|
-
def open_file(self):
|
203
|
-
filename = filedialog.askopenfilename(
|
204
|
-
title="Script öffnen",
|
205
|
-
filetypes=[("Bash Scripts", "*.sh"), ("Alle Dateien", "*.*")]
|
206
|
-
)
|
207
|
-
if filename:
|
208
|
-
try:
|
209
|
-
with open(filename, 'r', encoding='utf-8') as f:
|
210
|
-
content = f.read()
|
211
|
-
self.text_editor.delete(1.0, tk.END)
|
212
|
-
self.text_editor.insert(1.0, content)
|
213
|
-
self.current_file = filename
|
214
|
-
self.update_title()
|
215
|
-
except Exception as e:
|
216
|
-
messagebox.showerror("Fehler", f"Datei konnte nicht geöffnet werden: {e}")
|
217
|
-
|
218
|
-
def save_file(self):
|
219
|
-
if self.current_file:
|
220
|
-
self.save_to_file(self.current_file)
|
221
|
-
else:
|
222
|
-
self.save_as_file()
|
223
|
-
|
224
|
-
def save_as_file(self):
|
225
|
-
filename = filedialog.asksaveasfilename(
|
226
|
-
title="Script speichern",
|
227
|
-
defaultextension=".sh",
|
228
|
-
filetypes=[("Bash Scripts", "*.sh"), ("Alle Dateien", "*.*")]
|
229
|
-
)
|
230
|
-
if filename:
|
231
|
-
self.save_to_file(filename)
|
232
|
-
self.current_file = filename
|
233
|
-
self.update_title()
|
234
|
-
|
235
|
-
def save_to_file(self, filename):
|
236
|
-
try:
|
237
|
-
content = self.text_editor.get(1.0, tk.END)
|
238
|
-
with open(filename, 'w', encoding='utf-8') as f:
|
239
|
-
f.write(content)
|
240
|
-
# Make executable
|
241
|
-
os.chmod(filename, 0o755)
|
242
|
-
self.status_bar.config(text=f"Gespeichert: {filename}")
|
243
|
-
except Exception as e:
|
244
|
-
messagebox.showerror("Fehler", f"Datei konnte nicht gespeichert werden: {e}")
|
245
|
-
|
246
|
-
def run_script(self):
|
247
|
-
if not self.current_file:
|
248
|
-
if messagebox.askyesno("Speichern", "Script muss erst gespeichert werden. Jetzt speichern?"):
|
249
|
-
self.save_as_file()
|
250
|
-
if not self.current_file:
|
251
|
-
return
|
252
|
-
else:
|
253
|
-
return
|
254
|
-
|
255
|
-
def run_in_thread():
|
256
|
-
try:
|
257
|
-
result = subprocess.run(
|
258
|
-
["bash", self.current_file],
|
259
|
-
capture_output=True,
|
260
|
-
text=True,
|
261
|
-
timeout=30
|
262
|
-
)
|
263
|
-
|
264
|
-
output = result.stdout + result.stderr
|
265
|
-
if output:
|
266
|
-
messagebox.showinfo("Script-Ausgabe", output)
|
267
|
-
else:
|
268
|
-
messagebox.showinfo("Script-Ausgabe", "Script erfolgreich ausgeführt (keine Ausgabe)")
|
269
|
-
|
270
|
-
except subprocess.TimeoutExpired:
|
271
|
-
messagebox.showerror("Fehler", "Script-Ausführung abgebrochen (Timeout)")
|
272
|
-
except Exception as e:
|
273
|
-
messagebox.showerror("Fehler", f"Script-Ausführung fehlgeschlagen: {e}")
|
274
|
-
|
275
|
-
threading.Thread(target=run_in_thread, daemon=True).start()
|
276
|
-
|
277
|
-
def update_title(self):
|
278
|
-
title = "Bash-Script-Maker"
|
279
|
-
if self.current_file:
|
280
|
-
title += f" - {os.path.basename(self.current_file)}"
|
281
|
-
self.root.title(title)
|
282
|
-
|
283
|
-
def main():
|
284
|
-
root = tk.Tk()
|
285
|
-
app = BashScriptMaker(root)
|
286
|
-
root.mainloop()
|
287
|
-
|
288
|
-
if __name__ == "__main__":
|
289
|
-
main()
|
@@ -1,169 +0,0 @@
|
|
1
|
-
#!/bin/bash
|
2
|
-
# Build-Script für Flatpak-Paket von Bash-Script-Maker
|
3
|
-
|
4
|
-
echo "=== Bash-Script-Maker - Flatpak Build ==="
|
5
|
-
echo "Dieses Script erstellt ein Flatpak-Paket für Bash-Script-Maker."
|
6
|
-
echo ""
|
7
|
-
|
8
|
-
# Farbcodes für bessere Lesbarkeit
|
9
|
-
RED='\033[0;31m'
|
10
|
-
GREEN='\033[0;32m'
|
11
|
-
YELLOW='\033[1;33m'
|
12
|
-
BLUE='\033[0;34m'
|
13
|
-
NC='\033[0m' # No Color
|
14
|
-
|
15
|
-
# Funktion für farbige Ausgabe
|
16
|
-
print_status() {
|
17
|
-
echo -e "${BLUE}[INFO]${NC} $1"
|
18
|
-
}
|
19
|
-
|
20
|
-
print_success() {
|
21
|
-
echo -e "${GREEN}[SUCCESS]${NC} $1"
|
22
|
-
}
|
23
|
-
|
24
|
-
print_warning() {
|
25
|
-
echo -e "${YELLOW}[WARNING]${NC} $1"
|
26
|
-
}
|
27
|
-
|
28
|
-
print_error() {
|
29
|
-
echo -e "${RED}[ERROR]${NC} $1"
|
30
|
-
}
|
31
|
-
|
32
|
-
# Überprüfe, ob Flatpak installiert ist
|
33
|
-
if ! command -v flatpak &> /dev/null; then
|
34
|
-
print_error "Flatpak ist nicht installiert!"
|
35
|
-
print_status "Installieren Sie Flatpak mit:"
|
36
|
-
print_status " sudo dnf install flatpak # Fedora/RHEL"
|
37
|
-
print_status " sudo apt install flatpak # Ubuntu/Debian"
|
38
|
-
print_status " sudo pacman -S flatpak # Arch Linux"
|
39
|
-
exit 1
|
40
|
-
fi
|
41
|
-
|
42
|
-
# Überprüfe, ob flatpak-builder installiert ist
|
43
|
-
if ! command -v flatpak-builder &> /dev/null; then
|
44
|
-
print_error "flatpak-builder ist nicht installiert!"
|
45
|
-
print_status "Installieren Sie flatpak-builder mit:"
|
46
|
-
print_status " sudo dnf install flatpak-builder # Fedora/RHEL"
|
47
|
-
print_status " sudo apt install flatpak-builder # Ubuntu/Debian"
|
48
|
-
print_status " sudo pacman -S flatpak-builder # Arch Linux"
|
49
|
-
exit 1
|
50
|
-
fi
|
51
|
-
|
52
|
-
# Überprüfe, ob die Flatpak-Runtime installiert ist
|
53
|
-
print_status "Überprüfe Flatpak-Runtime..."
|
54
|
-
if ! flatpak list | grep -q "org.freedesktop.Platform.*23.08"; then
|
55
|
-
print_status "Installiere Flatpak-Runtime..."
|
56
|
-
flatpak install -y flathub org.freedesktop.Platform//23.08
|
57
|
-
flatpak install -y flathub org.freedesktop.Sdk//23.08
|
58
|
-
fi
|
59
|
-
|
60
|
-
# Erstelle Build-Verzeichnis
|
61
|
-
print_status "Erstelle Build-Verzeichnis..."
|
62
|
-
mkdir -p build/flatpak
|
63
|
-
|
64
|
-
# Kopiere Manifest und AppData
|
65
|
-
print_status "Kopiere Flatpak-Dateien..."
|
66
|
-
cp flatpak/org.securebits.bashscriptmaker.simple.yml build/flatpak/org.securebits.bashscriptmaker.yml
|
67
|
-
cp flatpak/org.securebits.bashscriptmaker.appdata.xml build/flatpak/
|
68
|
-
|
69
|
-
# Erstelle Desktop-Datei für Flatpak
|
70
|
-
print_status "Erstelle Desktop-Datei für Flatpak..."
|
71
|
-
cat > build/flatpak/org.securebits.bashscriptmaker.desktop << 'EOF'
|
72
|
-
[Desktop Entry]
|
73
|
-
Name=Bash-Script-Maker
|
74
|
-
Comment=Ein GUI-Programm zur Erstellung von Bash-Scripts
|
75
|
-
Exec=bash-script-maker
|
76
|
-
Icon=org.securebits.bashscriptmaker
|
77
|
-
Terminal=false
|
78
|
-
Type=Application
|
79
|
-
Categories=Development;Utility;
|
80
|
-
Keywords=bash;script;editor;generator;
|
81
|
-
StartupWMClass=bash-script-maker
|
82
|
-
EOF
|
83
|
-
|
84
|
-
# Kopiere Icon
|
85
|
-
print_status "Kopiere Icon..."
|
86
|
-
mkdir -p build/flatpak/icons/hicolor/scalable/apps
|
87
|
-
cp assets/bash-script-maker.svg build/flatpak/icons/hicolor/scalable/apps/org.securebits.bashscriptmaker.svg
|
88
|
-
|
89
|
-
# Erstelle requirements.txt für Flatpak
|
90
|
-
print_status "Erstelle requirements.txt für Flatpak..."
|
91
|
-
cat > build/flatpak/requirements.txt << 'EOF'
|
92
|
-
ttkbootstrap>=1.10.1
|
93
|
-
pygments>=2.15.1
|
94
|
-
EOF
|
95
|
-
|
96
|
-
# Erstelle setup.py für Flatpak
|
97
|
-
print_status "Erstelle setup.py für Flatpak..."
|
98
|
-
cat > build/flatpak/setup.py << 'EOF'
|
99
|
-
#!/usr/bin/env python3
|
100
|
-
from setuptools import setup
|
101
|
-
|
102
|
-
setup(
|
103
|
-
name="bash-script-maker",
|
104
|
-
version="1.2.1",
|
105
|
-
py_modules=["bash_script_maker", "syntax_highlighter", "localization", "custom_dialogs", "assets"],
|
106
|
-
entry_points={
|
107
|
-
"console_scripts": [
|
108
|
-
"bash-script-maker=bash_script_maker:main",
|
109
|
-
],
|
110
|
-
},
|
111
|
-
install_requires=[
|
112
|
-
"ttkbootstrap>=1.10.1",
|
113
|
-
"pygments>=2.15.1",
|
114
|
-
],
|
115
|
-
)
|
116
|
-
EOF
|
117
|
-
|
118
|
-
# Kopiere Python-Module
|
119
|
-
print_status "Kopiere Python-Module..."
|
120
|
-
cp bash_script_maker.py build/flatpak/
|
121
|
-
cp syntax_highlighter.py build/flatpak/
|
122
|
-
cp localization.py build/flatpak/
|
123
|
-
cp custom_dialogs.py build/flatpak/
|
124
|
-
cp assets.py build/flatpak/
|
125
|
-
|
126
|
-
# Erstelle Flatpak-Paket
|
127
|
-
print_status "Erstelle Flatpak-Paket..."
|
128
|
-
cd build/flatpak
|
129
|
-
|
130
|
-
# Verwende das einfache Manifest mit systemweiter Flatpak-Installation
|
131
|
-
if sudo flatpak-builder --repo=repo --force-clean build org.securebits.bashscriptmaker.yml; then
|
132
|
-
print_success "Flatpak-Paket erfolgreich erstellt!"
|
133
|
-
|
134
|
-
# Erstelle Bundle
|
135
|
-
print_status "Erstelle Flatpak-Bundle..."
|
136
|
-
if flatpak build-bundle repo bash-script-maker.flatpak org.securebits.bashscriptmaker; then
|
137
|
-
print_success "Flatpak-Bundle erstellt: bash-script-maker.flatpak"
|
138
|
-
print_status "Installation mit: flatpak install bash-script-maker.flatpak"
|
139
|
-
else
|
140
|
-
print_error "Fehler beim Erstellen des Flatpak-Bundles"
|
141
|
-
exit 1
|
142
|
-
fi
|
143
|
-
else
|
144
|
-
print_error "Fehler beim Erstellen des Flatpak-Pakets"
|
145
|
-
print_status "Versuche mit dem einfachen Manifest..."
|
146
|
-
|
147
|
-
# Fallback auf das einfache Manifest
|
148
|
-
if sudo flatpak-builder --repo=repo --force-clean build org.securebits.bashscriptmaker.yml; then
|
149
|
-
print_success "Flatpak-Paket mit einfachem Manifest erfolgreich erstellt!"
|
150
|
-
|
151
|
-
if flatpak build-bundle repo bash-script-maker.flatpak org.securebits.bashscriptmaker; then
|
152
|
-
print_success "Flatpak-Bundle erstellt: bash-script-maker.flatpak"
|
153
|
-
else
|
154
|
-
print_error "Fehler beim Erstellen des Flatpak-Bundles"
|
155
|
-
exit 1
|
156
|
-
fi
|
157
|
-
else
|
158
|
-
print_error "Fehler beim Erstellen des Flatpak-Pakets mit beiden Manifesten"
|
159
|
-
exit 1
|
160
|
-
fi
|
161
|
-
fi
|
162
|
-
|
163
|
-
cd ../..
|
164
|
-
|
165
|
-
echo ""
|
166
|
-
print_success "=== FLATPAK-BUILD ABGESCHLOSSEN ==="
|
167
|
-
print_status "Flatpak-Bundle: build/flatpak/bash-script-maker.flatpak"
|
168
|
-
print_status "Installation: flatpak install build/flatpak/bash-script-maker.flatpak"
|
169
|
-
print_status "Starten: flatpak run org.securebits.bashscriptmaker"
|
@@ -1,211 +0,0 @@
|
|
1
|
-
#!/bin/bash
|
2
|
-
# Flatpak-Installation für Bash-Script-Maker
|
3
|
-
|
4
|
-
echo "=== Bash-Script-Maker - Flatpak Installation ==="
|
5
|
-
echo "Dieses Script installiert Bash-Script-Maker als Flatpak-Paket."
|
6
|
-
echo ""
|
7
|
-
|
8
|
-
# Farbcodes für bessere Lesbarkeit
|
9
|
-
RED='\033[0;31m'
|
10
|
-
GREEN='\033[0;32m'
|
11
|
-
YELLOW='\033[1;33m'
|
12
|
-
BLUE='\033[0;34m'
|
13
|
-
NC='\033[0m' # No Color
|
14
|
-
|
15
|
-
# Funktion für farbige Ausgabe
|
16
|
-
print_status() {
|
17
|
-
echo -e "${BLUE}[INFO]${NC} $1"
|
18
|
-
}
|
19
|
-
|
20
|
-
print_success() {
|
21
|
-
echo -e "${GREEN}[SUCCESS]${NC} $1"
|
22
|
-
}
|
23
|
-
|
24
|
-
print_warning() {
|
25
|
-
echo -e "${YELLOW}[WARNING]${NC} $1"
|
26
|
-
}
|
27
|
-
|
28
|
-
print_error() {
|
29
|
-
echo -e "${RED}[ERROR]${NC} $1"
|
30
|
-
}
|
31
|
-
|
32
|
-
# Überprüfe, ob Flatpak installiert ist
|
33
|
-
if ! command -v flatpak &> /dev/null; then
|
34
|
-
print_error "Flatpak ist nicht installiert!"
|
35
|
-
print_status "Installieren Sie Flatpak mit:"
|
36
|
-
|
37
|
-
if command -v dnf &> /dev/null; then
|
38
|
-
print_status " sudo dnf install flatpak"
|
39
|
-
elif command -v apt &> /dev/null; then
|
40
|
-
print_status " sudo apt install flatpak"
|
41
|
-
elif command -v pacman &> /dev/null; then
|
42
|
-
print_status " sudo pacman -S flatpak"
|
43
|
-
elif command -v zypper &> /dev/null; then
|
44
|
-
print_status " sudo zypper install flatpak"
|
45
|
-
else
|
46
|
-
print_status " Installieren Sie Flatpak über Ihren Paketmanager"
|
47
|
-
fi
|
48
|
-
|
49
|
-
exit 1
|
50
|
-
fi
|
51
|
-
|
52
|
-
# Überprüfe, ob flatpak-builder installiert ist
|
53
|
-
if ! command -v flatpak-builder &> /dev/null; then
|
54
|
-
print_error "flatpak-builder ist nicht installiert!"
|
55
|
-
print_status "Installieren Sie flatpak-builder mit:"
|
56
|
-
|
57
|
-
if command -v dnf &> /dev/null; then
|
58
|
-
print_status " sudo dnf install flatpak-builder"
|
59
|
-
elif command -v apt &> /dev/null; then
|
60
|
-
print_status " sudo apt install flatpak-builder"
|
61
|
-
elif command -v pacman &> /dev/null; then
|
62
|
-
print_status " sudo pacman -S flatpak-builder"
|
63
|
-
elif command -v zypper &> /dev/null; then
|
64
|
-
print_status " sudo zypper install flatpak-builder"
|
65
|
-
else
|
66
|
-
print_status " Installieren Sie flatpak-builder über Ihren Paketmanager"
|
67
|
-
fi
|
68
|
-
|
69
|
-
exit 1
|
70
|
-
fi
|
71
|
-
|
72
|
-
# Überprüfe, ob Flathub-Repository hinzugefügt ist
|
73
|
-
if ! flatpak remote-list | grep -q flathub; then
|
74
|
-
print_status "Füge Flathub-Repository hinzu..."
|
75
|
-
if flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo; then
|
76
|
-
print_success "Flathub-Repository hinzugefügt"
|
77
|
-
else
|
78
|
-
print_error "Fehler beim Hinzufügen des Flathub-Repositories"
|
79
|
-
exit 1
|
80
|
-
fi
|
81
|
-
fi
|
82
|
-
|
83
|
-
# Installiere Flatpak-Runtime
|
84
|
-
print_status "Installiere Flatpak-Runtime..."
|
85
|
-
if ! flatpak list | grep -q "org.freedesktop.Platform.*23.08"; then
|
86
|
-
if flatpak install -y flathub org.freedesktop.Platform//23.08; then
|
87
|
-
print_success "Flatpak-Runtime installiert"
|
88
|
-
else
|
89
|
-
print_error "Fehler beim Installieren der Flatpak-Runtime"
|
90
|
-
exit 1
|
91
|
-
fi
|
92
|
-
else
|
93
|
-
print_success "Flatpak-Runtime bereits installiert"
|
94
|
-
fi
|
95
|
-
|
96
|
-
if ! flatpak list | grep -q "org.freedesktop.Sdk.*23.08"; then
|
97
|
-
if flatpak install -y flathub org.freedesktop.Sdk//23.08; then
|
98
|
-
print_success "Flatpak-SDK installiert"
|
99
|
-
else
|
100
|
-
print_error "Fehler beim Installieren des Flatpak-SDK"
|
101
|
-
exit 1
|
102
|
-
fi
|
103
|
-
else
|
104
|
-
print_success "Flatpak-SDK bereits installiert"
|
105
|
-
fi
|
106
|
-
|
107
|
-
# Erstelle Build-Verzeichnis
|
108
|
-
print_status "Erstelle Build-Verzeichnis..."
|
109
|
-
mkdir -p build/flatpak
|
110
|
-
|
111
|
-
# Kopiere Manifest und AppData
|
112
|
-
print_status "Kopiere Flatpak-Dateien..."
|
113
|
-
cp flatpak/org.securebits.bashscriptmaker.simple.yml build/flatpak/org.securebits.bashscriptmaker.yml
|
114
|
-
cp flatpak/org.securebits.bashscriptmaker.appdata.xml build/flatpak/
|
115
|
-
|
116
|
-
# Erstelle Desktop-Datei für Flatpak
|
117
|
-
print_status "Erstelle Desktop-Datei für Flatpak..."
|
118
|
-
cat > build/flatpak/org.securebits.bashscriptmaker.desktop << 'EOF'
|
119
|
-
[Desktop Entry]
|
120
|
-
Name=Bash-Script-Maker
|
121
|
-
Comment=Ein GUI-Programm zur Erstellung von Bash-Scripts
|
122
|
-
Exec=bash-script-maker
|
123
|
-
Icon=org.securebits.bashscriptmaker
|
124
|
-
Terminal=false
|
125
|
-
Type=Application
|
126
|
-
Categories=Development;Utility;
|
127
|
-
Keywords=bash;script;editor;generator;
|
128
|
-
StartupWMClass=bash-script-maker
|
129
|
-
EOF
|
130
|
-
|
131
|
-
# Kopiere Icon
|
132
|
-
print_status "Kopiere Icon..."
|
133
|
-
mkdir -p build/flatpak/icons/hicolor/scalable/apps
|
134
|
-
cp assets/bash-script-maker.svg build/flatpak/icons/hicolor/scalable/apps/org.securebits.bashscriptmaker.svg
|
135
|
-
|
136
|
-
# Erstelle requirements.txt für Flatpak
|
137
|
-
print_status "Erstelle requirements.txt für Flatpak..."
|
138
|
-
cat > build/flatpak/requirements.txt << 'EOF'
|
139
|
-
ttkbootstrap>=1.10.1
|
140
|
-
pygments>=2.15.1
|
141
|
-
EOF
|
142
|
-
|
143
|
-
# Erstelle setup.py für Flatpak
|
144
|
-
print_status "Erstelle setup.py für Flatpak..."
|
145
|
-
cat > build/flatpak/setup.py << 'EOF'
|
146
|
-
#!/usr/bin/env python3
|
147
|
-
from setuptools import setup
|
148
|
-
|
149
|
-
setup(
|
150
|
-
name="bash-script-maker",
|
151
|
-
version="1.2.1",
|
152
|
-
py_modules=["bash_script_maker", "syntax_highlighter", "localization", "custom_dialogs", "assets"],
|
153
|
-
entry_points={
|
154
|
-
"console_scripts": [
|
155
|
-
"bash-script-maker=bash_script_maker:main",
|
156
|
-
],
|
157
|
-
},
|
158
|
-
install_requires=[
|
159
|
-
"ttkbootstrap>=1.10.1",
|
160
|
-
"pygments>=2.15.1",
|
161
|
-
],
|
162
|
-
)
|
163
|
-
EOF
|
164
|
-
|
165
|
-
# Kopiere Python-Module
|
166
|
-
print_status "Kopiere Python-Module..."
|
167
|
-
cp bash_script_maker.py build/flatpak/
|
168
|
-
cp syntax_highlighter.py build/flatpak/
|
169
|
-
cp localization.py build/flatpak/
|
170
|
-
cp custom_dialogs.py build/flatpak/
|
171
|
-
cp assets.py build/flatpak/
|
172
|
-
|
173
|
-
# Erstelle Flatpak-Paket
|
174
|
-
print_status "Erstelle Flatpak-Paket..."
|
175
|
-
cd build/flatpak
|
176
|
-
|
177
|
-
if flatpak-builder --repo=repo --force-clean build org.securebits.bashscriptmaker.yml; then
|
178
|
-
print_success "Flatpak-Paket erfolgreich erstellt!"
|
179
|
-
|
180
|
-
# Erstelle Bundle
|
181
|
-
print_status "Erstelle Flatpak-Bundle..."
|
182
|
-
if flatpak build-bundle repo bash-script-maker.flatpak org.securebits.bashscriptmaker; then
|
183
|
-
print_success "Flatpak-Bundle erstellt: bash-script-maker.flatpak"
|
184
|
-
|
185
|
-
# Installiere das Paket
|
186
|
-
print_status "Installiere Flatpak-Paket..."
|
187
|
-
if flatpak install --user bash-script-maker.flatpak; then
|
188
|
-
print_success "Flatpak-Paket erfolgreich installiert!"
|
189
|
-
print_status "Sie können die App jetzt starten mit:"
|
190
|
-
print_status " flatpak run org.securebits.bashscriptmaker"
|
191
|
-
print_status "Oder über das Anwendungsmenü suchen Sie nach 'Bash-Script-Maker'"
|
192
|
-
else
|
193
|
-
print_error "Fehler beim Installieren des Flatpak-Pakets"
|
194
|
-
exit 1
|
195
|
-
fi
|
196
|
-
else
|
197
|
-
print_error "Fehler beim Erstellen des Flatpak-Bundles"
|
198
|
-
exit 1
|
199
|
-
fi
|
200
|
-
else
|
201
|
-
print_error "Fehler beim Erstellen des Flatpak-Pakets"
|
202
|
-
exit 1
|
203
|
-
fi
|
204
|
-
|
205
|
-
cd ../..
|
206
|
-
|
207
|
-
echo ""
|
208
|
-
print_success "=== FLATPAK-INSTALLATION ABGESCHLOSSEN ==="
|
209
|
-
print_status "Die App ist jetzt als Flatpak-Paket installiert!"
|
210
|
-
print_status "Starten: flatpak run org.securebits.bashscriptmaker"
|
211
|
-
print_status "Deinstallieren: flatpak uninstall org.securebits.bashscriptmaker"
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{bash-script-maker-1.4.5 → bash-script-maker-1.5.0}/bash_script_maker.egg-info/dependency_links.txt
RENAMED
File without changes
|
{bash-script-maker-1.4.5 → bash-script-maker-1.5.0}/bash_script_maker.egg-info/entry_points.txt
RENAMED
File without changes
|
File without changes
|
{bash-script-maker-1.4.5 → bash-script-maker-1.5.0}/bash_script_maker.egg-info/top_level.txt
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|