75 lines
2.4 KiB
Bash
Executable File
75 lines
2.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Prüfen, ob der richtige Modus (cbz oder cbr) und ein Verzeichnis angegeben wurden
|
|
if [[ $# -ne 2 ]]; then
|
|
echo "Verwendung: $0 <cbz|cbr> <Verzeichnis>"
|
|
exit 1
|
|
fi
|
|
|
|
mode=$1
|
|
directory=$2
|
|
|
|
# Überprüfen, ob das Verzeichnis existiert
|
|
if [[ ! -d "$directory" ]]; then
|
|
echo "Fehler: Das angegebene Verzeichnis existiert nicht."
|
|
exit 1
|
|
fi
|
|
|
|
# Abhängig vom Modus die Konvertierung durchführen
|
|
case $mode in
|
|
cbz)
|
|
# CBR -> CBZ konvertieren
|
|
for cbr_file in "$directory"/*.cbr; do
|
|
if [[ -f "$cbr_file" ]]; then
|
|
base_name="${cbr_file%.cbr}"
|
|
temp_dir=$(mktemp -d)
|
|
|
|
echo "Entpacke $cbr_file ..."
|
|
7z x "$cbr_file" -o"$temp_dir" > /dev/null 2>&1
|
|
if [[ $? -eq 0 ]]; then
|
|
echo "Erstelle ${base_name}.cbz ..."
|
|
7z a -tzip "${base_name}.cbz" "$temp_dir"/* > /dev/null 2>&1
|
|
if [[ $? -eq 0 ]]; then
|
|
echo "Lösche Originaldatei: $cbr_file"
|
|
rm "$cbr_file"
|
|
else
|
|
echo "Fehler beim Erstellen von ${base_name}.cbz"
|
|
fi
|
|
else
|
|
echo "Fehler beim Entpacken von $cbr_file"
|
|
fi
|
|
rm -rf "$temp_dir"
|
|
fi
|
|
done
|
|
;;
|
|
cbr)
|
|
# CBZ -> CBR konvertieren
|
|
for cbz_file in "$directory"/*.cbz; do
|
|
if [[ -f "$cbz_file" ]]; then
|
|
base_name="${cbz_file%.cbz}"
|
|
temp_dir=$(mktemp -d)
|
|
|
|
echo "Entpacke $cbz_file ..."
|
|
7z x "$cbz_file" -o"$temp_dir" > /dev/null 2>&1
|
|
if [[ $? -eq 0 ]]; then
|
|
echo "Erstelle ${base_name}.cbr ..."
|
|
7z a -ttar "${base_name}.cbr" "$temp_dir"/* > /dev/null 2>&1
|
|
if [[ $? -eq 0 ]]; then
|
|
echo "Lösche Originaldatei: $cbz_file"
|
|
rm "$cbz_file"
|
|
else
|
|
echo "Fehler beim Erstellen von ${base_name}.cbr"
|
|
fi
|
|
else
|
|
echo "Fehler beim Entpacken von $cbz_file"
|
|
fi
|
|
rm -rf "$temp_dir"
|
|
fi
|
|
done
|
|
;;
|
|
*)
|
|
echo "Ungültiger Modus. Bitte 'cbz' oder 'cbr' verwenden."
|
|
exit 1
|
|
;;
|
|
esac
|