erweiterung
This commit is contained in:
parent
badede0c5d
commit
7f11ccae07
3 changed files with 113 additions and 0 deletions
69
find.sh
Executable file
69
find.sh
Executable file
|
|
@ -0,0 +1,69 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Ermittelt das Verzeichnis, in dem dieses Skript liegt, als Basis für die Suche
|
||||||
|
BASE_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
# 1. Alle README.md Dateien finden und nach Tags durchsuchen
|
||||||
|
# Suche startet im dynamisch ermittelten BASE_DIR
|
||||||
|
all_tags=$(grep -rhioE "(#\w+|Tags:.*)" "$BASE_DIR" --include="README.md" 2>/dev/null | \
|
||||||
|
sed 's/Tags://g' | tr ',' '\n' | tr -d ' ' | sort -u)
|
||||||
|
|
||||||
|
if [ -z "$all_tags" ]; then
|
||||||
|
zenity --error --title="Fehler" --text="Keine Tags in den README-Dateien unter\n$BASE_DIR gefunden."
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 2. Grafische Auswahl der Tags via Zenity
|
||||||
|
selected_tag=$(zenity --list \
|
||||||
|
--title="Projekt-Tag-Suche" \
|
||||||
|
--column="Verfügbare Tags" \
|
||||||
|
--width=400 --height=500 \
|
||||||
|
$all_tags)
|
||||||
|
|
||||||
|
# Wenn Abbrechen gedrückt wurde oder das Fenster geschlossen wurde
|
||||||
|
if [ -z "$selected_tag" ]; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 3. Ergebnisse finden
|
||||||
|
results=$(grep -rl "$selected_tag" "$BASE_DIR" --include="README.md" 2>/dev/null | while read -r file; do
|
||||||
|
dirname "$(realpath "$file")"
|
||||||
|
done)
|
||||||
|
|
||||||
|
# Ergebnisse in einem Info-Fenster anzeigen
|
||||||
|
if [ -z "$results" ]; then
|
||||||
|
zenity --info --title="Ergebnis" --text="Keine Projekte für den Tag '$selected_tag' gefunden."
|
||||||
|
else
|
||||||
|
zenity --info --title="Gefundene Projekte: $selected_tag" \
|
||||||
|
--text="Folgende Ordner enthalten den Tag:\n\n$results" \
|
||||||
|
--width=600
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 4. Export-Abfrage mit Zeitstempel-Logik
|
||||||
|
if zenity --question --title="Exportieren?" --text="Möchtest du diese Liste in eine Datei speichern?"; then
|
||||||
|
# Zeitstempel für den Dateinamen (amerikanisches Format für die Sortierung)
|
||||||
|
timestamp=$(date +"%Y-%m-%d_%H-%M-%S")
|
||||||
|
|
||||||
|
# Dateiauswahl-Dialog zum Speichern
|
||||||
|
final_filename=$(zenity --file-selection --save --confirm-overwrite \
|
||||||
|
--filename="${timestamp}_suche_export.txt" \
|
||||||
|
--title="Export speichern unter...")
|
||||||
|
|
||||||
|
if [ -n "$final_filename" ]; then
|
||||||
|
{
|
||||||
|
echo "Tag: $selected_tag"
|
||||||
|
echo "Export-Zeitpunkt: $(date)"
|
||||||
|
echo "------------------------------------------"
|
||||||
|
echo "Ergebnisse:"
|
||||||
|
echo "$results"
|
||||||
|
} > "$final_filename"
|
||||||
|
zenity --info --text="Datei wurde erfolgreich gespeichert:\n$final_filename"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 5. Weitersuchen oder Beenden
|
||||||
|
if ! zenity --question --title="Weitere Suche?" --text="Möchtest du eine weitere Suche starten?"; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
11
setup_Projekt.desktop
Executable file
11
setup_Projekt.desktop
Executable file
|
|
@ -0,0 +1,11 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Version=1.0
|
||||||
|
Type=Application
|
||||||
|
Name=setup_Projekt
|
||||||
|
Comment=Startet mein Bash-Skript im Terminal
|
||||||
|
Exec=bash -c "./setup_Projekt.sh; echo; echo 'Fertig - Drücke Enter zum Schließen'; read"
|
||||||
|
Icon=utilities-terminal
|
||||||
|
Terminal=true
|
||||||
|
Path=/home/christian/Projekte
|
||||||
|
Categories=Application;
|
||||||
|
StartupNotify=true
|
||||||
33
toolbox.sh
Executable file
33
toolbox.sh
Executable file
|
|
@ -0,0 +1,33 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Ermittelt das Verzeichnis, in dem dieses Skript liegt
|
||||||
|
SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)
|
||||||
|
|
||||||
|
# Relative Pfade zu den Modulen definieren
|
||||||
|
# WICHTIG: Prüfe, ob die Datei wirklich ".setup_Projekt.sh" heißt (mit Punkt!)
|
||||||
|
SCRIPT_SETUP="$SCRIPT_DIR/.setup_Projekt.sh"
|
||||||
|
SCRIPT_FIND="$SCRIPT_DIR/find.sh"
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
CHOICE=$(zenity --list \
|
||||||
|
--title="Christian's Projekt-Toolbox" \
|
||||||
|
--column="Aktion" --column="Beschreibung" \
|
||||||
|
--width=500 --height=350 \
|
||||||
|
"1. Projekt erstellen" "Legt neue Hardware- oder Software-Ordner an" \
|
||||||
|
"2. Projekt suchen" "Durchsucht Readmes nach Tags" \
|
||||||
|
"3. Beenden" "Schließt die Toolbox")
|
||||||
|
|
||||||
|
case "$CHOICE" in
|
||||||
|
"1. Projekt erstellen")
|
||||||
|
# Wir übergeben den vollen Pfad ($SCRIPT_SETUP) direkt an bash
|
||||||
|
xfce4-terminal --working-directory="$SCRIPT_DIR" -e "bash -c '$SCRIPT_SETUP; echo; echo \"Fertig. Taste drücken...\"; read'"
|
||||||
|
;;
|
||||||
|
"2. Projekt suchen")
|
||||||
|
# Suche direkt ausführen
|
||||||
|
bash "$SCRIPT_FIND"
|
||||||
|
;;
|
||||||
|
"3. Beenden" | "")
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
Loading…
Add table
Reference in a new issue