diff --git a/README.md b/README.md index 0f3e82c..87b4052 100644 --- a/README.md +++ b/README.md @@ -6,4 +6,4 @@ Dies soll ein Sammelrepo sein in dem alle kleineren Skripte zusammengetragen wer - Batchconvert.sh: - Ein Skript welches unter Linux verwendet werden kann um mehrere Dokumente im DOC Format in eine PDF umzuwandeln. - sandbox.bat: - - Ein Skript welches die Windows Sandbox force neuzustarten \ No newline at end of file + - Ein Skript welches die Windows Sandbox force Neuzustarten \ No newline at end of file diff --git a/batchdocconv.sh b/batchdocconv.sh index 090fc63..acaf1e6 100644 --- a/batchdocconv.sh +++ b/batchdocconv.sh @@ -1,10 +1,13 @@ #!/bin/bash -GREEN='\033[0;32m' -RED='\033[0;31m' -NOCOLOR='\033[0m' +# Hinweise zur verwendung des Skripts: +# - Vor dem ersten laufen lassen des Skripts sollte sichergestellt werden dass der Hauptordner Richtig gewählt ist, und dass dort nur die Datein Abgelegt werden welche umgewandelt werden sollen. +# - Das Skript sollte dann automatosch inerhalb des Haupt Ordners einen Unterordner als Zielordner erstellen um dort die PDFs Abzulegen. +# - Bei Ausführen des Skripts wird der Zielordner immer vor beginn der Umwandlungen gereinigt, sodass keine Dateikonflikte enstehen. +# - Die Originaldatein werden nachdem diese in PDFs umgewandelt wurden GELÖSCHT, es sollten also keine einzeloriginale umgewandelt werden sondern nur Kopien +# - Es können weitere Dateitypen zur umwandlung in der jeweiligen find funktion wie bereits vorhandne hinzugefügt werden. # Pfad zum Hauptordner (Dokumente) @@ -13,6 +16,35 @@ HAUPT_ORDNER="$HOME/Dokumente" # Pfad zum Zielordner (PDF) ZIEL_ORDNER="$HAUPT_ORDNER/PDF" +LOGLEVL=$1 + +# Festlegen der Farben für Ausgabe +GREEN='\033[0;32m' +RED='\033[0;31m' +CYAN='\033[0;36m' +NC='\033[0m' + + +# Funktion zur ausgabe von Debug Meldungen +function debug(){ + if [ "$LOGLEVEL" = "debug" ]; then + echo -e "${CYAN}[DEBUG] $1${NC}" + fi +} + +# Funktion zur Ausgabe von log Meldungen +function log() { + if [ "$LOGLEVEL" != "error" ]; then + echo -e "${GREEN}[INFO] $1${NC}" + fi +} + +# Funktion zur Ausgabe von error Meldungen +function error() { + echo -e "${RED}[ERROR] $1${NC}" +} + + # Zielordner erstellen, falls er nicht existiert rm -frd "$ZIEL_ORDNER" mkdir -p "$ZIEL_ORDNER" @@ -24,77 +56,72 @@ find "$HAUPT_ORDNER" -type f \( -name "*.DOC" -o -name "*.doc" -o -name "*.docx" # Relativen Pfad zur Datei finden RELATIVER_PFAD="${DOC_FILE#$HAUPT_ORDNER/}" - # Zielverzeichnis für die PDF-Datei bestimmen + # Zielverzeichnis für die PDF-Datei bestimmen ZIEL_VERZEICHNIS="$ZIEL_ORDNER/$(dirname "$RELATIVER_PFAD")" # Zielverzeichnis erstellen, falls es nicht existiert mkdir -p "$ZIEL_VERZEICHNIS" - echo -e "${NOCOLOR}Konvertiere $DOC_FILE...${NOCOLOR}" + debug "Konvertiere $DOC_FILE..." # Datei in das Zielverzeichnis als PDF konvertieren if lowriter --headless --convert-to pdf --outdir "$ZIEL_VERZEICHNIS" "$DOC_FILE"; then - echo -e "${GREEN}Loesche Originaldatei $DOC_FILE...${NOCOLOR}" + debug -e "Loesche Originaldatei $DOC_FILE..." rm "$DOC_FILE" else - echo -e "${RED}Fehler: Konvertierung fehlgeschlagen fuer $DOC_FILE.${NOCOLOR}" + error "Fehler: Konvertierung fehlgeschlagen fuer $DOC_FILE." fi done -echo " " -echo " " -echo -e "${GREEN}================>DOC umwandlung Abgeslossen beginne PPT<===================${NOCOLOR}" -echo " " -echo " " +log -e "================>DOC umwandlung Abgeslossen<===================" + +# Alle .ppt-Datein im Hauptordner und Unterordnern finden find "$HAUPT_ORDNER" -type f \( -name "*.ppt" -o -name "*.pptm" -o -name "*.pptx" -o -name "*.PPT" -o -name "*.PPTX" \) | while read -r PRES_FILE; do # Relativen Pfad zur Datei finden RELATIVER_PFAD="${PRES_FILE#$HAUPT_ORDNER/}" - # Zielverzeichnis für die PDF-Datei bestimmen + # Zielverzeichnis für die PDF-Datei bestimmen ZIEL_VERZEICHNIS="$ZIEL_ORDNER/Anhang/$(dirname "$RELATIVER_PFAD")" - - - echo -e "${NOCOLOR}Konvertiere $PRES_FILE...${NOCOLOR}" + # Ausgabe + debug "Konvertiere $PRES_FILE..." # Datei in das Zielverzeichnis als PDF konvertieren if libreoffice --headless --convert-to pdf --outdir "$ZIEL_VERZEICHNIS/Anhang" "$PRES_FILE"; then - echo -e "${GREEN}Loesche Originaldatei $PRES_FILE...${NOCOLOR}" + debug "Loesche Originaldatei $PRES_FILE..." rm "$PRES_FILE" else - echo -e "${RED}Fehler: Konvertierung fehlgeschlagen fuer $PRES_FILE.${NOCOLOR}" + error "Fehler: Konvertierung fehlgeschlagen fuer $PRES_FILE." fi done -echo " " -echo " " -echo -e "${GREEN}================>PPT umwandlung Abgeslossen beginne XLS<===================${NOCOLOR}" -echo " " -echo " " + +log -e "${GREEN}================>PPT umwandlung Abgeslossen<===================${NC}" + find "$HAUPT_ORDNER" -type f \( -name "*.XLS" -o -name "*.xls" -o -name "*.XLSX" -o -name "*.xlsx" \) | while read -r TAB_FILE; do # Relativen Pfad zur Datei finden RELATIVER_PFAD="${TAB_FILE#$HAUPT_ORDNER/}" - # Zielverzeichnis für die PDF-Datei bestimmen + # Zielverzeichnis f�r die PDF-Datei bestimmen ZIEL_VERZEICHNIS="$ZIEL_ORDNER/Anhang/$(dirname "$RELATIVER_PFAD")" - echo -e "${NOCOLOR}Konvertiere $TAB_FILE...${NOCOLOR}" + echo -e "${NC}Konvertiere $TAB_FILE...${NC}" # Datei in das Zielverzeichnis als PDF konvertieren if libreoffice --headless --convert-to pdf --outdir "$ZIEL_VERZEICHNIS/Anhang" "$TAB_FILE"; then - echo -e "${GREEN}Loesche Originaldatei $TAB_FILE...${NOCOLOR}" + echo -e "${GREEN}Loesche Originaldatei $TAB_FILE...${NC}" rm "$TAB_FILE" else - echo -e "${RED}Fehler: Konvertierung fehlgeschlagen fuer $TAB_FILE.${NOCOLOR}" + echo -e "${RED}Fehler: Konvertierung fehlgeschlagen fuer $TAB_FILE.${NC}" fi done -echo -e "${GREEN}============================${NOCOLOR}" -echo -e "${GREEN}Konvertierung Abgeschlossen.${NOCOLOR}" -echo -e "${GREEN}============================${NOCOLOR}" +echo -e "${GREEN}============================${NC}" +echo -e "${GREEN}Konvertierung Abgeschlossen.${NC}" +echo -e "${GREEN}============================${NC}"