For convenience, I wrote the following function in my .bashrc:
# .bashrc
# usage scpdiff [DIFFOPTS] LFILE RFILE
# assumes the last two arguments to be the files to be compared
scpdiff() {
local DIFFOPTS="";
local LFILE=""; local fl='';
local FILECOUNT=0;
local RFILE=""; local fr='';
while (( "$#" )); do
if [ "$#" -gt 2 ]; then
DIFFOPTS="${DIFFOPTS} ${1}";
elif [ "$#" -eq 2 ]; then LFILE=$1;
let "FILECOUNT = FILECOUNT + 1";
elif [ "$#" -eq 1 ]; then
RFILE=$1;
let "FILECOUNT = FILECOUNT + 1";
fi
shift;
done
[ ! ${FILECOUNT} -eq 2 ] \
&& printf "Needs exactly 2 files to diff.\n" > /dev/stderr \
&& return 1;
fl="/tmp/$(basename ${LFILE}).l";
( ! scp "${LFILE}" ${fl} >& /dev/null ) \
&& printf "${LFILE} Not Found\n" \
&& return 1;
fr="/tmp/$(basename ${RFILE}).r";
( ! scp "${RFILE}" ${fr} >& /dev/null ) \
&& printf "${RFILE} Not Found\n" \
&& return 1;
# Allows customization using different DIFFTOOL
[ -z ${DIFFTOOL} ] && local DIFFTOOL="diff";
${DIFFTOOL} ${DIFFOPTS} ${fl} ${fr};
rm -f ${fl} ${fr};
}
No comments:
Post a Comment