#!/usr/bin/env bash TAGS_TO_TRANSFER=( -Make -Model -ModifyDate -Artist -Copyright -Orientation -CreateDate -ExposureTime -FNumber -ISO -DateTimeOriginal -ShutterSpeedValue -ApertureValue -Flash -FocalLength ) FOLDER="./JPGs" extractRAW() { [[ -n "$1" ]] || return prev="$FOLDER/${1%.*}.JPG" if [[ ! -e "$prev" ]]; then exiftool -progress \ -b \ -PreviewImage \ "$1" \ > "$prev" exiftool -overwrite_original \ -tagsFromFile="$1" \ "${TAGS_TO_TRANSFER[@]}" \ "$prev" fi } mkdir -p "$FOLDER" for file; do [[ -f $file ]] || continue mime="$(file -b --mime-type "$file")" if [[ $mime = image/x-canon-cr2 ]]; then extractRAW "$file" elif [[ $mime = image/tiff ]]; then prev="$FOLDER/${file%.*}.JPG" if [[ ! -e "$prev" ]]; then convert "$file" "$prev" exiftool -overwrite_original \ -tagsFromFile="$file" \ "${TAGS_TO_TRANSFER[@]}" \ "$prev" fi elif [[ "$(head -1 "$file")" = "#Geeqie collection" ]]; then while read line; do extractRAW "$file" done <"$(sed -E '/^#/d;s/(^"|"$)//g' "$file")" else >&2 printf "Unrecognized format: $file\n" fi done rmdir "$FOLDER" >/dev/null 2>&1 || true