#!/bin/bash set -e # Includes . $(miniade) || { echo "${0##*/}: ERROR: miniade failed (hint: run 'miniade' to see error)" >&2; exit 1; } # Configurable stuff # Other globals main() { # Minimal option processing miniade_process_standard_options MY_ARGS "$@" && set -- "${MY_ARGS[@]}" # Process arguments [ $# -ge 2 ] || usage DIR=$1 shift FILES=( "$@" ) # Sanity checks and derivations [ -d $DIR ] || error "$DIR: no such directory" # Guts I=0 for FILE in "${FILES[@]}"; do debug 10 "main: FILE=$FILE ($I)" [[ $FILE =~ ^/ ]] || FILE=$(pwd)/$FILE CREATION_TIMESTAMP=$(date -d $(exiftool -s -s -s -d %Y-%m-%dT%H:%M:%S -CreateDate "$FILE") +%Y%m%d%H%M%S) echo "ln -s \"$FILE\" \"$DIR/$CREATION_TIMESTAMP-${FILE##*/}\"" ((++I)) done } usage() { local PROGNAME miniade_get_progname PROGNAME echo "Usage: $PROGNAME [ ] [ ... ]" >&2 exit 1 } main "$@"