1 # $OpenBSD: sftp-cmds.sh,v 1.5 2003/07/19 00:46:31 djm Exp $
2 # Placed in the Public Domain.
5 # - chmod / chown / chgrp
6 # - -p flag for get & put
12 # test that these files are readable!
13 for i in `(cd /bin;echo l*)`
16 GLOBFILES="$GLOBFILES $i"
21 # Path with embedded quote
22 QUOTECOPY=${COPY}".\"blah\""
23 QUOTECOPY_ARG=${COPY}'.\"blah\"'
25 rm -rf ${COPY} ${COPY}.1 ${COPY}.2 ${COPY}.dd ${COPY}.dd2 ${BATCH}.*
29 echo "lls ${OBJ}" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
31 # XXX always successful
34 echo "ls ${OBJ}" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
36 # XXX always successful
39 echo "!echo hi there" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
40 || fail "shell failed"
41 # XXX always successful
44 echo "pwd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
46 # XXX always successful
49 echo "lpwd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
51 # XXX always successful
54 echo "quit" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
56 # XXX always successful
59 echo "help" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
61 # XXX always successful
65 echo "get $DATA $COPY" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
67 cmp $DATA ${COPY} || fail "corrupted copy after get"
70 verbose "$tid: get to directory"
71 echo "get $DATA ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
73 cmp $DATA ${COPY}.dd/ls || fail "corrupted copy after get"
76 verbose "$tid: glob get to directory"
77 echo "get /bin/l* ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
79 for x in $GLOBFILES; do
80 cmp /bin/$x ${COPY}.dd/$x || fail "corrupted copy after get"
84 verbose "$tid: get to local dir"
85 echo "lcd ${COPY}.dd\nget $DATA" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
87 cmp $DATA ${COPY}.dd/ls || fail "corrupted copy after get"
90 verbose "$tid: glob get to local dir"
91 echo "lcd ${COPY}.dd\nget /bin/l*" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
93 for x in $GLOBFILES; do
94 cmp /bin/$x ${COPY}.dd/$x || fail "corrupted copy after get"
99 echo "put $DATA $COPY" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
101 cmp $DATA ${COPY} || fail "corrupted copy after put"
104 verbose "$tid: put filename with quotes"
105 echo "put $DATA \"$QUOTECOPY_ARG\"" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
107 cmp $DATA ${QUOTECOPY} || fail "corrupted copy after put with quotes"
110 verbose "$tid: put to directory"
111 echo "put $DATA ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
113 cmp $DATA ${COPY}.dd/ls || fail "corrupted copy after put"
116 verbose "$tid: glob put to directory"
117 echo "put /bin/l* ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
119 for x in $GLOBFILES; do
120 cmp /bin/$x ${COPY}.dd/$x || fail "corrupted copy after put"
124 verbose "$tid: put to local dir"
125 echo "cd ${COPY}.dd\nput $DATA" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
127 cmp $DATA ${COPY}.dd/ls || fail "corrupted copy after put"
130 verbose "$tid: glob put to local dir"
131 echo "cd ${COPY}.dd\nput /bin/l*" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
133 for x in $GLOBFILES; do
134 cmp /bin/$x ${COPY}.dd/$x || fail "corrupted copy after put"
137 verbose "$tid: rename"
138 echo "rename $COPY ${COPY}.1" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
139 || fail "rename failed"
140 test -f ${COPY}.1 || fail "missing file after rename"
141 cmp $DATA ${COPY}.1 >/dev/null 2>&1 || fail "corrupted copy after rename"
143 verbose "$tid: rename directory"
144 echo "rename ${COPY}.dd ${COPY}.dd2" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
145 || fail "rename directory failed"
146 test -d ${COPY}.dd && fail "oldname exists after rename directory"
147 test -d ${COPY}.dd2 || fail "missing newname after rename directory"
150 echo "ln ${COPY}.1 ${COPY}.2" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 || fail "ln failed"
151 test -L ${COPY}.2 || fail "missing file after ln"
153 verbose "$tid: mkdir"
154 echo "mkdir ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
155 || fail "mkdir failed"
156 test -d ${COPY}.dd || fail "missing directory after mkdir"
159 verbose "$tid: chdir"
160 echo "chdir ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
161 || fail "chdir failed"
163 verbose "$tid: rmdir"
164 echo "rmdir ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
165 || fail "rmdir failed"
166 test -d ${COPY}.1 && fail "present directory after rmdir"
168 verbose "$tid: lmkdir"
169 echo "lmkdir ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
170 || fail "lmkdir failed"
171 test -d ${COPY}.dd || fail "missing directory after lmkdir"
174 verbose "$tid: lchdir"
175 echo "lchdir ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
176 || fail "lchdir failed"
178 rm -rf ${COPY} ${COPY}.1 ${COPY}.2 ${COPY}.dd ${COPY}.dd2 ${BATCH}.*