]>
Commit | Line | Data |
---|---|---|
12408a1b | 1 | # $OpenBSD: sftp-cmds.sh,v 1.6 2003/10/07 07:04:52 djm Exp $ |
6a9b3198 | 2 | # Placed in the Public Domain. |
3 | ||
4 | # XXX - TODO: | |
6a9b3198 | 5 | # - chmod / chown / chgrp |
6 | # - -p flag for get & put | |
7 | ||
8 | tid="sftp commands" | |
9 | ||
0fff78ff | 10 | DATA=/bin/ls${EXEEXT} |
6a9b3198 | 11 | COPY=${OBJ}/copy |
0fff78ff | 12 | # test that these files are readable! |
13 | for i in `(cd /bin;echo l*)` | |
14 | do | |
15 | if [ -r $i ]; then | |
16 | GLOBFILES="$GLOBFILES $i" | |
17 | fi | |
18 | done | |
19 | ||
20 | if have_prog uname | |
21 | then | |
22 | case `uname` in | |
23 | CYGWIN*) | |
24 | os=cygwin | |
25 | ;; | |
26 | *) | |
27 | os=`uname` | |
28 | ;; | |
29 | esac | |
30 | else | |
31 | os="unknown" | |
32 | fi | |
33 | ||
34 | # Path with embedded quote | |
35 | QUOTECOPY=${COPY}".\"blah\"" | |
36 | QUOTECOPY_ARG=${COPY}'.\"blah\"' | |
37 | ||
38 | rm -rf ${COPY} ${COPY}.1 ${COPY}.2 ${COPY}.dd ${COPY}.dd2 | |
39 | mkdir ${COPY}.dd | |
6a9b3198 | 40 | |
41 | verbose "$tid: lls" | |
42 | echo "lls ${OBJ}" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ | |
43 | || fail "lls failed" | |
44 | # XXX always successful | |
45 | ||
46 | verbose "$tid: ls" | |
47 | echo "ls ${OBJ}" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ | |
48 | || fail "ls failed" | |
49 | # XXX always successful | |
50 | ||
51 | verbose "$tid: shell" | |
52 | echo "!echo hi there" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ | |
53 | || fail "shell failed" | |
54 | # XXX always successful | |
55 | ||
56 | verbose "$tid: pwd" | |
57 | echo "pwd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ | |
58 | || fail "pwd failed" | |
59 | # XXX always successful | |
60 | ||
61 | verbose "$tid: lpwd" | |
62 | echo "lpwd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ | |
63 | || fail "lpwd failed" | |
64 | # XXX always successful | |
65 | ||
66 | verbose "$tid: quit" | |
67 | echo "quit" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ | |
68 | || fail "quit failed" | |
69 | # XXX always successful | |
70 | ||
71 | verbose "$tid: help" | |
72 | echo "help" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ | |
73 | || fail "help failed" | |
74 | # XXX always successful | |
75 | ||
76 | rm -f ${COPY} | |
77 | verbose "$tid: get" | |
78 | echo "get $DATA $COPY" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ | |
79 | || fail "get failed" | |
80 | cmp $DATA ${COPY} || fail "corrupted copy after get" | |
81 | ||
12408a1b | 82 | rm -f ${COPY} |
83 | verbose "$tid: get quoted" | |
84 | echo "get \"$DATA\" $COPY" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ | |
85 | || fail "get failed" | |
86 | cmp $DATA ${COPY} || fail "corrupted copy after get" | |
87 | ||
88 | rm -f ${QUOTECOPY} | |
89 | cp $DATA ${QUOTECOPY} | |
90 | verbose "$tid: get filename with quotes" | |
91 | echo "get \"$QUOTECOPY_ARG\" ${COPY}" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ | |
92 | || fail "put failed" | |
93 | cmp ${COPY} ${QUOTECOPY} || fail "corrupted copy after get with quotes" | |
94 | rm -f ${QUOTECOPY} ${COPY} | |
95 | ||
0fff78ff | 96 | rm -f ${COPY}.dd/* |
97 | verbose "$tid: get to directory" | |
98 | echo "get $DATA ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ | |
99 | || fail "get failed" | |
100 | cmp $DATA ${COPY}.dd/`basename $DATA` || fail "corrupted copy after get" | |
101 | ||
102 | rm -f ${COPY}.dd/* | |
103 | verbose "$tid: glob get to directory" | |
104 | echo "get /bin/l* ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ | |
105 | || fail "get failed" | |
106 | for x in $GLOBFILES; do | |
107 | cmp /bin/$x ${COPY}.dd/$x || fail "corrupted copy after get" | |
108 | done | |
109 | ||
110 | rm -f ${COPY}.dd/* | |
111 | verbose "$tid: get to local dir" | |
112 | (echo "lcd ${COPY}.dd"; echo "get $DATA" ) | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ | |
113 | || fail "get failed" | |
114 | cmp $DATA ${COPY}.dd/`basename $DATA` || fail "corrupted copy after get" | |
115 | ||
116 | rm -f ${COPY}.dd/* | |
117 | verbose "$tid: glob get to local dir" | |
118 | (echo "lcd ${COPY}.dd"; echo "get /bin/l*") | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ | |
119 | || fail "get failed" | |
120 | for x in $GLOBFILES; do | |
121 | cmp /bin/$x ${COPY}.dd/$x || fail "corrupted copy after get" | |
122 | done | |
123 | ||
6a9b3198 | 124 | rm -f ${COPY} |
125 | verbose "$tid: put" | |
126 | echo "put $DATA $COPY" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ | |
127 | || fail "put failed" | |
128 | cmp $DATA ${COPY} || fail "corrupted copy after put" | |
129 | ||
0fff78ff | 130 | if [ "$os" != "cygwin" ]; then |
131 | rm -f ${QUOTECOPY} | |
132 | verbose "$tid: put filename with quotes" | |
133 | echo "put $DATA \"$QUOTECOPY_ARG\"" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ | |
134 | || fail "put failed" | |
135 | cmp $DATA ${QUOTECOPY} || fail "corrupted copy after put with quotes" | |
136 | fi | |
137 | ||
138 | rm -f ${COPY}.dd/* | |
139 | verbose "$tid: put to directory" | |
140 | echo "put $DATA ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ | |
141 | || fail "put failed" | |
142 | cmp $DATA ${COPY}.dd/`basename $DATA` || fail "corrupted copy after put" | |
143 | ||
144 | rm -f ${COPY}.dd/* | |
145 | verbose "$tid: glob put to directory" | |
146 | echo "put /bin/l* ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ | |
147 | || fail "put failed" | |
148 | for x in $GLOBFILES; do | |
149 | cmp /bin/$x ${COPY}.dd/$x || fail "corrupted copy after put" | |
150 | done | |
151 | ||
152 | rm -f ${COPY}.dd/* | |
153 | verbose "$tid: put to local dir" | |
154 | (echo "cd ${COPY}.dd"; echo "put $DATA") | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ | |
155 | || fail "put failed" | |
156 | cmp $DATA ${COPY}.dd/`basename $DATA` || fail "corrupted copy after put" | |
157 | ||
158 | rm -f ${COPY}.dd/* | |
159 | verbose "$tid: glob put to local dir" | |
160 | (echo "cd ${COPY}.dd"; echo "put /bin/l*") | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ | |
161 | || fail "put failed" | |
162 | for x in $GLOBFILES; do | |
163 | cmp /bin/$x ${COPY}.dd/$x || fail "corrupted copy after put" | |
164 | done | |
165 | ||
6a9b3198 | 166 | verbose "$tid: rename" |
167 | echo "rename $COPY ${COPY}.1" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ | |
168 | || fail "rename failed" | |
169 | test -f ${COPY}.1 || fail "missing file after rename" | |
170 | cmp $DATA ${COPY}.1 >/dev/null 2>&1 || fail "corrupted copy after rename" | |
171 | ||
0fff78ff | 172 | verbose "$tid: rename directory" |
173 | echo "rename ${COPY}.dd ${COPY}.dd2" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ | |
174 | || fail "rename directory failed" | |
175 | test -d ${COPY}.dd && fail "oldname exists after rename directory" | |
176 | test -d ${COPY}.dd2 || fail "missing newname after rename directory" | |
177 | ||
6a9b3198 | 178 | verbose "$tid: ln" |
179 | echo "ln ${COPY}.1 ${COPY}.2" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 || fail "ln failed" | |
0fff78ff | 180 | test -h ${COPY}.2 || fail "missing file after ln" |
6a9b3198 | 181 | |
182 | verbose "$tid: mkdir" | |
183 | echo "mkdir ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ | |
184 | || fail "mkdir failed" | |
185 | test -d ${COPY}.dd || fail "missing directory after mkdir" | |
186 | ||
187 | # XXX do more here | |
188 | verbose "$tid: chdir" | |
189 | echo "chdir ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ | |
190 | || fail "chdir failed" | |
191 | ||
192 | verbose "$tid: rmdir" | |
193 | echo "rmdir ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ | |
194 | || fail "rmdir failed" | |
195 | test -d ${COPY}.1 && fail "present directory after rmdir" | |
196 | ||
197 | verbose "$tid: lmkdir" | |
198 | echo "lmkdir ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ | |
199 | || fail "lmkdir failed" | |
200 | test -d ${COPY}.dd || fail "missing directory after lmkdir" | |
201 | ||
202 | # XXX do more here | |
203 | verbose "$tid: lchdir" | |
204 | echo "lchdir ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ | |
205 | || fail "lchdir failed" | |
206 | ||
0fff78ff | 207 | rm -rf ${COPY} ${COPY}.1 ${COPY}.2 ${COPY}.dd ${COPY}.dd2 |
6a9b3198 | 208 | |
209 |