-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinstall.sh
More file actions
96 lines (79 loc) · 3.68 KB
/
install.sh
File metadata and controls
96 lines (79 loc) · 3.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#!/usr/bin/env bash
set -e # Abbruch bei Fehlern, damit wir nicht weiterlaufen, wenn etwas schiefgeht
# -------------------------------------------------
# Hilfsfunktion: prüft, ob ein Kommando existiert
# -------------------------------------------------
cmd_exists() { command -v "$1" >/dev/null 2>&1; }
# -------------------------------------------------
# 0. Prüfen, ob notwendige Hilfsprogramme da sind
# -------------------------------------------------
missing=()
for prog in xdg-user-dir gio update-desktop-database; do
cmd_exists "$prog" || missing+=("$prog")
done
if (( ${#missing[@]} )); then
echo "⚠ Fehlende Hilfsprogramme: ${missing[*]}"
echo "Bitte installiere sie (z. B. sudo apt install xdg-utils libglib2.0-bin desktop-file-utils)"
exit 1
fi
# ------------------------------------------------------------------
# 1. Programmdatei nach /usr/local/bin kopieren und ausführbar machen
# ------------------------------------------------------------------
sudo cp zaehlerstaende.py /usr/local/bin/zaehlerstaende
sudo chmod +x /usr/local/bin/zaehlerstaende
# ------------------------------------------------------------------
# 2. Icon an den richtigen Platz bringen
# ------------------------------------------------------------------
# Angenommen, du hast eine PNG‑Datei namens icon.png im selben Verzeichnis wie das Skript
ICON_SRC="data/zaehler.png" # Icon liegt im data‑Ordner
ICON_DST="/usr/local/share/icons/hicolor/48x48/apps/zaehlerstaende.png"
# Zielverzeichnis anlegen (falls noch nicht vorhanden)
sudo mkdir -p "$(dirname "$ICON_DST")"
# Icon kopieren und lesbar machen
sudo cp "$ICON_SRC" "$ICON_DST"
sudo chmod a+r "$ICON_DST"
# ------------------------------------------------------------------
# 3. .desktop‑Datei erzeugen (im Home‑Verzeichnis des Aufrufenden)
# ------------------------------------------------------------------
DESKTOP_FILE="$HOME/.local/share/applications/zaehlerstaende.desktop"
mkdir -p "$(dirname "$DESKTOP_FILE")"
cat > "$DESKTOP_FILE" << 'EOF'
[Desktop Entry]
Version=1.0
Type=Application
Name=Zählerstände
Comment=Zählerstände verwalten
Exec=/usr/local/bin/zaehlerstaende
Icon=zaehlerstaende
Terminal=false
Categories=Utility;Office;
EOF
# .desktop‑Datei ausführbar machen, sonst wird sie von vielen Desktops ignoriert
chmod +x "$DESKTOP_FILE"
# ------------------------------------------------------------------
# 4. (Optional) Desktop‑Datenbank aktualisieren
# ------------------------------------------------------------------
if command -v update-desktop-database >/dev/null 2>&1; then
update-desktop-database "$HOME/.local/share/applications"
fi
# -------------------------------------------------
# 5. Verknüpfung auf dem Schreibtisch anlegen
# -------------------------------------------------
DESKTOP_DIR=$(xdg-user-dir DESKTOP) # ermittelt den Desktop-Pfad
# Falls das Verzeichnis nicht existiert (seltene Fälle)
mkdir -p "$DESKTOP_DIR"
# Symbolischen Link erstellen (kann auch mit cp ersetzt werden)
ln -sf "$HOME/.local/share/applications/zaehlerstaende.desktop" \
"$DESKTOP_DIR/zaehlerstaende.desktop"
# Ausführbarkeit sicherstellen
chmod +x "$DESKTOP_DIR/zaehlerstaende.desktop"
# GNOME‑/Cinnamon‑Trust‑Flag setzen (unterdrückt den Warnhinweis)
if cmd_exists gio; then
gio set "$DESKTOP_DIR/zaehlerstaende.desktop" metadata::trusted true
fi
echo "Verknüpfung wurde auf dem Desktop angelegt."
# ------------------------------------------------------------------
# Abschlussmeldung
# ------------------------------------------------------------------
echo "✅ Installation erfolgreich!"
echo "→ Starte das Programm über das Anwendungsmenü oder per Doppelklick auf den Desktop‑Eintrag."