]>
Commit | Line | Data |
---|---|---|
3d3e0ec3 | 1 | # $OpenBSD: sftp-cmds.sh,v 1.6 2003/10/07 07:04:52 djm Exp $ |
8582624b | 2 | # Placed in the Public Domain. |
3 | ||
4 | # XXX - TODO: | |
8582624b | 5 | # - chmod / chown / chgrp |
6 | # - -p flag for get & put | |
7 | ||
8 | tid="sftp commands" | |
9 | ||
83d96134 | 10 | DATA=/bin/ls${EXEEXT} |
8582624b | 11 | COPY=${OBJ}/copy |
783a8283 | 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 | ||
c1b10a96 | 20 | if have_prog uname |
ac4a169f | 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 | ||
86d0260c | 34 | # Path with embedded quote |
35 | QUOTECOPY=${COPY}".\"blah\"" | |
36 | QUOTECOPY_ARG=${COPY}'.\"blah\"' | |
37 | ||
2b1bb684 | 38 | rm -rf ${COPY} ${COPY}.1 ${COPY}.2 ${COPY}.dd ${COPY}.dd2 |
68df2aa0 | 39 | mkdir ${COPY}.dd |
8582624b | 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 | ||
3d3e0ec3 | 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 | ||
f9aacd5e | 88 | if [ "$os" != "cygwin" ]; then |
3d3e0ec3 | 89 | rm -f ${QUOTECOPY} |
90 | cp $DATA ${QUOTECOPY} | |
91 | verbose "$tid: get filename with quotes" | |
92 | echo "get \"$QUOTECOPY_ARG\" ${COPY}" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ | |
93 | || fail "put failed" | |
94 | cmp ${COPY} ${QUOTECOPY} || fail "corrupted copy after get with quotes" | |
95 | rm -f ${QUOTECOPY} ${COPY} | |
f9aacd5e | 96 | fi |
3d3e0ec3 | 97 | |
68df2aa0 | 98 | rm -f ${COPY}.dd/* |
99 | verbose "$tid: get to directory" | |
100 | echo "get $DATA ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ | |
101 | || fail "get failed" | |
83d96134 | 102 | cmp $DATA ${COPY}.dd/`basename $DATA` || fail "corrupted copy after get" |
68df2aa0 | 103 | |
104 | rm -f ${COPY}.dd/* | |
105 | verbose "$tid: glob get to directory" | |
106 | echo "get /bin/l* ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ | |
107 | || fail "get failed" | |
108 | for x in $GLOBFILES; do | |
109 | cmp /bin/$x ${COPY}.dd/$x || fail "corrupted copy after get" | |
110 | done | |
111 | ||
112 | rm -f ${COPY}.dd/* | |
113 | verbose "$tid: get to local dir" | |
83d96134 | 114 | (echo "lcd ${COPY}.dd"; echo "get $DATA" ) | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ |
68df2aa0 | 115 | || fail "get failed" |
83d96134 | 116 | cmp $DATA ${COPY}.dd/`basename $DATA` || fail "corrupted copy after get" |
68df2aa0 | 117 | |
118 | rm -f ${COPY}.dd/* | |
119 | verbose "$tid: glob get to local dir" | |
83d96134 | 120 | (echo "lcd ${COPY}.dd"; echo "get /bin/l*") | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ |
68df2aa0 | 121 | || fail "get failed" |
122 | for x in $GLOBFILES; do | |
123 | cmp /bin/$x ${COPY}.dd/$x || fail "corrupted copy after get" | |
124 | done | |
125 | ||
8582624b | 126 | rm -f ${COPY} |
127 | verbose "$tid: put" | |
128 | echo "put $DATA $COPY" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ | |
129 | || fail "put failed" | |
130 | cmp $DATA ${COPY} || fail "corrupted copy after put" | |
131 | ||
ac4a169f | 132 | if [ "$os" != "cygwin" ]; then |
86d0260c | 133 | rm -f ${QUOTECOPY} |
134 | verbose "$tid: put filename with quotes" | |
135 | echo "put $DATA \"$QUOTECOPY_ARG\"" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ | |
136 | || fail "put failed" | |
137 | cmp $DATA ${QUOTECOPY} || fail "corrupted copy after put with quotes" | |
ac4a169f | 138 | fi |
86d0260c | 139 | |
68df2aa0 | 140 | rm -f ${COPY}.dd/* |
141 | verbose "$tid: put to directory" | |
142 | echo "put $DATA ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ | |
143 | || fail "put failed" | |
83d96134 | 144 | cmp $DATA ${COPY}.dd/`basename $DATA` || fail "corrupted copy after put" |
68df2aa0 | 145 | |
146 | rm -f ${COPY}.dd/* | |
147 | verbose "$tid: glob put to directory" | |
148 | echo "put /bin/l* ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ | |
149 | || fail "put failed" | |
150 | for x in $GLOBFILES; do | |
151 | cmp /bin/$x ${COPY}.dd/$x || fail "corrupted copy after put" | |
152 | done | |
153 | ||
154 | rm -f ${COPY}.dd/* | |
155 | verbose "$tid: put to local dir" | |
83d96134 | 156 | (echo "cd ${COPY}.dd"; echo "put $DATA") | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ |
68df2aa0 | 157 | || fail "put failed" |
83d96134 | 158 | cmp $DATA ${COPY}.dd/`basename $DATA` || fail "corrupted copy after put" |
68df2aa0 | 159 | |
160 | rm -f ${COPY}.dd/* | |
161 | verbose "$tid: glob put to local dir" | |
83d96134 | 162 | (echo "cd ${COPY}.dd"; echo "put /bin/l*") | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ |
68df2aa0 | 163 | || fail "put failed" |
164 | for x in $GLOBFILES; do | |
165 | cmp /bin/$x ${COPY}.dd/$x || fail "corrupted copy after put" | |
166 | done | |
167 | ||
8582624b | 168 | verbose "$tid: rename" |
169 | echo "rename $COPY ${COPY}.1" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ | |
170 | || fail "rename failed" | |
171 | test -f ${COPY}.1 || fail "missing file after rename" | |
172 | cmp $DATA ${COPY}.1 >/dev/null 2>&1 || fail "corrupted copy after rename" | |
173 | ||
2c670155 | 174 | verbose "$tid: rename directory" |
175 | echo "rename ${COPY}.dd ${COPY}.dd2" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ | |
176 | || fail "rename directory failed" | |
177 | test -d ${COPY}.dd && fail "oldname exists after rename directory" | |
178 | test -d ${COPY}.dd2 || fail "missing newname after rename directory" | |
179 | ||
8582624b | 180 | verbose "$tid: ln" |
181 | echo "ln ${COPY}.1 ${COPY}.2" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 || fail "ln failed" | |
a687e172 | 182 | test -h ${COPY}.2 || fail "missing file after ln" |
8582624b | 183 | |
184 | verbose "$tid: mkdir" | |
185 | echo "mkdir ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ | |
186 | || fail "mkdir failed" | |
187 | test -d ${COPY}.dd || fail "missing directory after mkdir" | |
188 | ||
189 | # XXX do more here | |
190 | verbose "$tid: chdir" | |
191 | echo "chdir ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ | |
192 | || fail "chdir failed" | |
193 | ||
194 | verbose "$tid: rmdir" | |
195 | echo "rmdir ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ | |
196 | || fail "rmdir failed" | |
197 | test -d ${COPY}.1 && fail "present directory after rmdir" | |
198 | ||
199 | verbose "$tid: lmkdir" | |
200 | echo "lmkdir ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ | |
201 | || fail "lmkdir failed" | |
202 | test -d ${COPY}.dd || fail "missing directory after lmkdir" | |
203 | ||
204 | # XXX do more here | |
205 | verbose "$tid: lchdir" | |
206 | echo "lchdir ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ | |
207 | || fail "lchdir failed" | |
208 | ||
2b1bb684 | 209 | rm -rf ${COPY} ${COPY}.1 ${COPY}.2 ${COPY}.dd ${COPY}.dd2 |
8582624b | 210 | |
211 |