add recursiv find
This commit is contained in:
@@ -41,73 +41,68 @@ extract_with_fallback() {
|
|||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
# Funktion zum Packen mit 7z (für RAR und CBZ)
|
# Funktion zum Konvertieren von CBR nach CBZ
|
||||||
pack_with_7z() {
|
convert_cbr_to_cbz() {
|
||||||
local output_file=$1
|
local file=$1
|
||||||
local input_dir=$2
|
local base_name="${file%.cbr}"
|
||||||
|
local temp_dir="${base_name}_tmp"
|
||||||
|
|
||||||
7z a -r "$output_file" "$input_dir"/* > /dev/null 2>&1
|
mkdir -p "$temp_dir"
|
||||||
if [[ $? -eq 0 ]]; then
|
extract_with_fallback "$file" "$temp_dir"
|
||||||
return 0
|
if [[ $? -ne 0 ]]; then
|
||||||
else
|
echo "Fehler beim Entpacken von $file"
|
||||||
echo "Fehler: Erstellen von $output_file fehlgeschlagen."
|
rm -rf "$temp_dir"
|
||||||
return 1
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Erstellen des neuen CBZ-Archivs
|
||||||
|
zip -r "${base_name}.cbz" "$temp_dir" > /dev/null
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
rm "$file"
|
||||||
|
echo "Erfolgreich konvertiert: $file -> ${base_name}.cbz"
|
||||||
|
else
|
||||||
|
echo "Fehler beim Erstellen von ${base_name}.cbz"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf "$temp_dir"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Funktion zum Konvertieren von CBZ nach CBR
|
||||||
|
convert_cbz_to_cbr() {
|
||||||
|
local file=$1
|
||||||
|
local base_name="${file%.cbz}"
|
||||||
|
local temp_dir="${base_name}_tmp"
|
||||||
|
|
||||||
# Abhängig vom Modus die Konvertierung durchführen
|
mkdir -p "$temp_dir"
|
||||||
case $mode in
|
unzip -q "$file" -d "$temp_dir"
|
||||||
cbz)
|
if [[ $? -ne 0 ]]; then
|
||||||
for cbr_file in "$directory"/*.cbr; do
|
echo "Fehler beim Entpacken von $file"
|
||||||
if [[ -f "$cbr_file" ]]; then
|
rm -rf "$temp_dir"
|
||||||
base_name="${cbr_file%.cbr}"
|
return
|
||||||
temp_dir=$(mktemp -d)
|
fi
|
||||||
|
|
||||||
echo "Entpacke $cbr_file ..."
|
# Erstellen des neuen CBR-Archivs
|
||||||
if extract_with_fallback "$cbr_file" "$temp_dir"; then
|
rar a -r "${base_name}.cbr" "$temp_dir" > /dev/null
|
||||||
echo "Erstelle ${base_name}.cbz ..."
|
if [[ $? -eq 0 ]]; then
|
||||||
(cd "$temp_dir" && zip -r "${base_name}.cbz" ./* > /dev/null 2>&1)
|
rm "$file"
|
||||||
if [[ $? -eq 0 ]]; then
|
echo "Erfolgreich konvertiert: $file -> ${base_name}.cbr"
|
||||||
echo "Lösche Originaldatei: $cbr_file"
|
else
|
||||||
rm "$cbr_file"
|
echo "Fehler beim Erstellen von ${base_name}.cbr"
|
||||||
mv "${base_name}.cbz" "$directory/"
|
fi
|
||||||
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)
|
|
||||||
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 ..."
|
rm -rf "$temp_dir"
|
||||||
unzip -q "$cbz_file" -d "$temp_dir/"
|
}
|
||||||
if [[ $? -eq 0 ]]; then
|
|
||||||
echo "Erstelle ${base_name}.cbr ..."
|
# Dateien je nach Modus rekursiv finden und konvertieren
|
||||||
if pack_with_7z "${base_name}.cbr" "$temp_dir"; then
|
if [[ "$mode" == "cbz" ]]; then
|
||||||
echo "Lösche Originaldatei: $cbz_file"
|
find "$directory" -type f -name "*.cbr" | while read -r file; do
|
||||||
rm "$cbz_file"
|
convert_cbr_to_cbz "$file"
|
||||||
mv "${base_name}.cbr" "$directory/"
|
done
|
||||||
else
|
elif [[ "$mode" == "cbr" ]]; then
|
||||||
echo "Fehler beim Erstellen von ${base_name}.cbr"
|
find "$directory" -type f -name "*.cbz" | while read -r file; do
|
||||||
fi
|
convert_cbz_to_cbr "$file"
|
||||||
else
|
done
|
||||||
echo "Fehler beim Entpacken von $cbz_file"
|
else
|
||||||
fi
|
echo "Fehler: Ungültiger Modus. Verwenden Sie 'cbz' oder 'cbr'."
|
||||||
rm -rf "$temp_dir"
|
exit 1
|
||||||
fi
|
fi
|
||||||
done
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Ungültiger Modus. Bitte 'cbz' oder 'cbr' verwenden."
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|||||||
Reference in New Issue
Block a user