# Transparently wrap scp(1) targets to read (not write) on the command line self=swr <% include(`include/mktd.m4') %> # Set a flag to manage resetting the positional parameters at the start of the # loop n=1 for arg ; do # If this is our first iteration, reset the shell parameters case $n in 1) set -- ;; esac # Test whether this argument looks like a remote file if ( # Test it contains a colon case $arg in *:*) ;; *) exit 1 ;; esac # Test the part before the first colon has at least one character and # only hostname characters case ${arg%%:*} in '') exit 1 ;; *[!a-zA-Z0-9-.]*) exit 1 ;; esac ) ; then # Looks like a remote file request; try to copy it into the temporary # directory, bail out completely if we can't dst=$td/$n scp -q -- "$arg" "$dst" || exit set -- "$@" "$dst" else # Just a plain old argument; stack it up set -- "$@" "$arg" fi # Bump n n=$((n+1)) done # Run the command with the processed arguments exec "$@"