#!/bin/bash # Converts all files in current directory # ending with *.NEF to JPEGs (.jpg) using darktable-cli # Based on: # https://askubuntu.com/a/1337782 set -eo pipefail err() { ( 1>&2 echo -e "[Error]\n$1\nExiting" ) exit 1 } main() { command -v "darktable-cli" &>/dev/null || err "Expected command darktable-cli to be available" local nefs=() mapfile -t nefs < <(find_nefs) local i= local nef= local jpgname= for (( i = 0; i < ${#nefs[@]}; i++ )); do nef="${nefs[i]}" jpgname="$( basename -s ".NEF" "$nef" ).jpg" echo "$i: ${nef} -> ${jpgname}" [ -f "$jpgname" ] && err "JPEG file named \"${jpgname}\" already exists" darktable-cli "$nef" "$jpgname" done echo "Done" } find_nefs() { find . -type f -iname '*.nef' } main "$@"