From a6d0ab0c2ec8df64d13811a24ce760003a490064 Mon Sep 17 00:00:00 2001 From: Thorsten Date: Mon, 6 Jan 2025 21:01:45 +0100 Subject: [PATCH] Initial commit --- shell_convert_comics.sh | 102 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100755 shell_convert_comics.sh diff --git a/shell_convert_comics.sh b/shell_convert_comics.sh new file mode 100755 index 0000000..ccd4f8a --- /dev/null +++ b/shell_convert_comics.sh @@ -0,0 +1,102 @@ +#!/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."