#!/bin/bash if [[ $# -ne 2 ]]; then echo "Usage: $0 " echo "Modes:" echo " cbz Convert CBR to CBZ" echo " cbr Convert CBZ to CBR" exit 1 fi mode="$1" input_dir="$2" if [[ ! -d "$input_dir" ]]; then echo "Fehler: Verzeichnis $input_dir existiert nicht." exit 1 fi if [[ "$mode" == "cbz" ]]; then for cbr_file in "$input_dir"/*.cbr; do if [[ ! -f "$cbr_file" ]]; then echo "Keine CBR-Dateien im Verzeichnis $input_dir gefunden." exit 0 fi base_name="${cbr_file%.cbr}" temp_dir="${base_name}_temp" echo "Verarbeite: $cbr_file" # Entpacken mkdir -p "$temp_dir" unrar x -inul "$cbr_file" "$temp_dir/" if [[ $? -ne 0 ]]; then echo "Fehler beim Entpacken von $cbr_file. Überspringe Datei." rm -r "$temp_dir" continue fi # ZIP erstellen ( cd "$temp_dir" || exit zip -r -q "${base_name}.cbz" ./* ) mv "${temp_dir}/${base_name}.cbz" "$input_dir/" if [[ $? -ne 0 ]]; then echo "Fehler beim Erstellen der CBZ für $cbr_file. Überspringe Datei." rm -r "$temp_dir" continue fi # Aufräumen rm -r "$temp_dir" rm "$cbr_file" echo "Erfolgreich umgewandelt: $cbr_file -> ${base_name}.cbz" done elif [[ "$mode" == "cbr" ]]; then for cbz_file in "$input_dir"/*.cbz; do if [[ ! -f "$cbz_file" ]]; then echo "Keine CBZ-Dateien im Verzeichnis $input_dir gefunden." exit 0 fi base_name="${cbz_file%.cbz}" temp_dir="${base_name}_temp" echo "Verarbeite: $cbz_file" # Entpacken mkdir -p "$temp_dir" unzip -q "$cbz_file" -d "$temp_dir/" if [[ $? -ne 0 ]]; then echo "Fehler beim Entpacken von $cbz_file. Überspringe Datei." rm -r "$temp_dir" continue fi # RAR erstellen rar a -inul "${base_name}.cbr" "$temp_dir"/* mv "${base_name}.cbr" "$input_dir/" if [[ $? -ne 0 ]]; then echo "Fehler beim Erstellen der CBR für $cbz_file. Überspringe Datei." rm -r "$temp_dir" continue fi # Aufräumen rm -r "$temp_dir" rm "$cbz_file" echo "Erfolgreich umgewandelt: $cbz_file -> ${base_name}.cbr" done else echo "Unbekannter Modus: $mode" echo "Bitte 'cbz' oder 'cbr' angeben." exit 1 fi echo "Alle Dateien im Verzeichnis $input_dir wurden verarbeitet."