1*ce3adf43SDag-Erling Smørgrav# $OpenBSD: sftp-glob.sh,v 1.4 2009/08/13 01:11:55 djm Exp $ 2*ce3adf43SDag-Erling Smørgrav# Placed in the Public Domain. 3*ce3adf43SDag-Erling Smørgrav 4*ce3adf43SDag-Erling Smørgravtid="sftp glob" 5*ce3adf43SDag-Erling Smørgrav 6*ce3adf43SDag-Erling Smørgravconfig_defined FILESYSTEM_NO_BACKSLASH && nobs="not supported on this platform" 7*ce3adf43SDag-Erling Smørgrav 8*ce3adf43SDag-Erling Smørgravsftp_ls() { 9*ce3adf43SDag-Erling Smørgrav target=$1 10*ce3adf43SDag-Erling Smørgrav errtag=$2 11*ce3adf43SDag-Erling Smørgrav expected=$3 12*ce3adf43SDag-Erling Smørgrav unexpected=$4 13*ce3adf43SDag-Erling Smørgrav skip=$5 14*ce3adf43SDag-Erling Smørgrav if test "x$skip" != "x" ; then 15*ce3adf43SDag-Erling Smørgrav verbose "$tid: $errtag (skipped: $skip)" 16*ce3adf43SDag-Erling Smørgrav return 17*ce3adf43SDag-Erling Smørgrav fi 18*ce3adf43SDag-Erling Smørgrav verbose "$tid: $errtag" 19*ce3adf43SDag-Erling Smørgrav printf "ls -l %s" "${target}" | \ 20*ce3adf43SDag-Erling Smørgrav ${SFTP} -b - -D ${SFTPSERVER} 2>/dev/null | \ 21*ce3adf43SDag-Erling Smørgrav grep -v "^sftp>" > ${RESULTS} 22*ce3adf43SDag-Erling Smørgrav if [ $? -ne 0 ]; then 23*ce3adf43SDag-Erling Smørgrav fail "$errtag failed" 24*ce3adf43SDag-Erling Smørgrav fi 25*ce3adf43SDag-Erling Smørgrav if test "x$expected" != "x" ; then 26*ce3adf43SDag-Erling Smørgrav if fgrep "$expected" ${RESULTS} >/dev/null 2>&1 ; then 27*ce3adf43SDag-Erling Smørgrav : 28*ce3adf43SDag-Erling Smørgrav else 29*ce3adf43SDag-Erling Smørgrav fail "$expected missing from $errtag results" 30*ce3adf43SDag-Erling Smørgrav fi 31*ce3adf43SDag-Erling Smørgrav fi 32*ce3adf43SDag-Erling Smørgrav if test "x$unexpected" != "x" && \ 33*ce3adf43SDag-Erling Smørgrav fgrep "$unexpected" ${RESULTS} >/dev/null 2>&1 ; then 34*ce3adf43SDag-Erling Smørgrav fail "$unexpected present in $errtag results" 35*ce3adf43SDag-Erling Smørgrav fi 36*ce3adf43SDag-Erling Smørgrav rm -f ${RESULTS} 37*ce3adf43SDag-Erling Smørgrav} 38*ce3adf43SDag-Erling Smørgrav 39*ce3adf43SDag-Erling SmørgravBASE=${OBJ}/glob 40*ce3adf43SDag-Erling SmørgravRESULTS=${OBJ}/results 41*ce3adf43SDag-Erling SmørgravDIR=${BASE}/dir 42*ce3adf43SDag-Erling SmørgravDATA=${DIR}/file 43*ce3adf43SDag-Erling Smørgrav 44*ce3adf43SDag-Erling SmørgravGLOB1="${DIR}/g-wild*" 45*ce3adf43SDag-Erling SmørgravGLOB2="${DIR}/g-wildx" 46*ce3adf43SDag-Erling SmørgravQUOTE="${DIR}/g-quote\"" 47*ce3adf43SDag-Erling SmørgravSLASH="${DIR}/g-sl\\ash" 48*ce3adf43SDag-Erling SmørgravESLASH="${DIR}/g-slash\\" 49*ce3adf43SDag-Erling SmørgravQSLASH="${DIR}/g-qs\\\"" 50*ce3adf43SDag-Erling SmørgravSPACE="${DIR}/g-q space" 51*ce3adf43SDag-Erling Smørgrav 52*ce3adf43SDag-Erling Smørgravrm -rf ${BASE} 53*ce3adf43SDag-Erling Smørgravmkdir -p ${DIR} 54*ce3adf43SDag-Erling Smørgravtouch "${DATA}" "${GLOB1}" "${GLOB2}" "${QUOTE}" "${SPACE}" 55*ce3adf43SDag-Erling Smørgravtest "x$nobs" = "x" && touch "${QSLASH}" "${ESLASH}" "${SLASH}" 56*ce3adf43SDag-Erling Smørgrav 57*ce3adf43SDag-Erling Smørgrav# target message expected unexpected 58*ce3adf43SDag-Erling Smørgravsftp_ls "${DIR}/fil*" "file glob" "${DATA}" "" 59*ce3adf43SDag-Erling Smørgravsftp_ls "${BASE}/d*" "dir glob" "`basename ${DATA}`" "" 60*ce3adf43SDag-Erling Smørgravsftp_ls "${DIR}/g-wild\"*\"" "quoted glob" "g-wild*" "g-wildx" 61*ce3adf43SDag-Erling Smørgravsftp_ls "${DIR}/g-wild\*" "escaped glob" "g-wild*" "g-wildx" 62*ce3adf43SDag-Erling Smørgravsftp_ls "${DIR}/g-quote\\\"" "escaped quote" "g-quote\"" "" 63*ce3adf43SDag-Erling Smørgravsftp_ls "\"${DIR}/g-quote\\\"\"" "quoted quote" "g-quote\"" "" 64*ce3adf43SDag-Erling Smørgravsftp_ls "'${DIR}/g-quote\"'" "single-quoted quote" "g-quote\"" "" 65*ce3adf43SDag-Erling Smørgravsftp_ls "${DIR}/g-q\\ space" "escaped space" "g-q space" "" 66*ce3adf43SDag-Erling Smørgravsftp_ls "'${DIR}/g-q space'" "quoted space" "g-q space" "" 67*ce3adf43SDag-Erling Smørgravsftp_ls "${DIR}/g-sl\\\\ash" "escaped slash" "g-sl\\ash" "" "$nobs" 68*ce3adf43SDag-Erling Smørgravsftp_ls "'${DIR}/g-sl\\\\ash'" "quoted slash" "g-sl\\ash" "" "$nobs" 69*ce3adf43SDag-Erling Smørgravsftp_ls "${DIR}/g-slash\\\\" "escaped slash at EOL" "g-slash\\" "" "$nobs" 70*ce3adf43SDag-Erling Smørgravsftp_ls "'${DIR}/g-slash\\\\'" "quoted slash at EOL" "g-slash\\" "" "$nobs" 71*ce3adf43SDag-Erling Smørgravsftp_ls "${DIR}/g-qs\\\\\\\"" "escaped slash+quote" "g-qs\\\"" "" "$nobs" 72*ce3adf43SDag-Erling Smørgravsftp_ls "'${DIR}/g-qs\\\\\"'" "quoted slash+quote" "g-qs\\\"" "" "$nobs" 73*ce3adf43SDag-Erling Smørgrav 74*ce3adf43SDag-Erling Smørgravrm -rf ${BASE} 75*ce3adf43SDag-Erling Smørgrav 76