#!/bin/sh set -eu realpath() { perl -MFile::Spec -E 'my $base = shift; say File::Spec->abs2rel( shift, $base)' $1 $2 } now_files=0 args= files= while [ -n "${1:-}" ]; do if [ "$1" = "--" ]; then now_files=1 elif [ $now_files -eq 0 ]; then args="${args:+$args }$1" else if [ -e "${1##*/}" ]; then f="${1##*/}" else f="$(realpath $PWD $1)" fi files="${files:+$files }'$f'" fi shift done set -x eval exec git annex metadata $args $files