sftp-cmds.sh revision 1.4
1#	$OpenBSD: sftp-cmds.sh,v 1.4 2003/05/15 04:07:12 mouring Exp $
2#	Placed in the Public Domain.
3
4# XXX - TODO: 
5# - chmod / chown / chgrp
6# - -p flag for get & put
7
8tid="sftp commands"
9
10DATA=/bin/ls
11COPY=${OBJ}/copy
12GLOBFILES=`(cd /bin;echo l*)`
13
14rm -rf ${COPY} ${COPY}.1 ${COPY}.2 ${COPY}.dd ${COPY}.dd2 ${BATCH}.*
15mkdir ${COPY}.dd
16
17verbose "$tid: lls"
18echo "lls ${OBJ}" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
19	|| fail "lls failed"
20# XXX always successful
21
22verbose "$tid: ls"
23echo "ls ${OBJ}" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
24	|| fail "ls failed"
25# XXX always successful
26
27verbose "$tid: shell"
28echo "!echo hi there" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
29	|| fail "shell failed"
30# XXX always successful
31
32verbose "$tid: pwd"
33echo "pwd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
34	|| fail "pwd failed"
35# XXX always successful
36
37verbose "$tid: lpwd"
38echo "lpwd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
39	|| fail "lpwd failed"
40# XXX always successful
41
42verbose "$tid: quit"
43echo "quit" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
44	|| fail "quit failed"
45# XXX always successful
46
47verbose "$tid: help"
48echo "help" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
49	|| fail "help failed"
50# XXX always successful
51
52rm -f ${COPY}
53verbose "$tid: get"
54echo "get $DATA $COPY" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
55	|| fail "get failed"
56cmp $DATA ${COPY} || fail "corrupted copy after get"
57
58rm -f ${COPY}.dd/*
59verbose "$tid: get to directory"
60echo "get $DATA ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
61        || fail "get failed"
62cmp $DATA ${COPY}.dd/ls || fail "corrupted copy after get"
63
64rm -f ${COPY}.dd/*
65verbose "$tid: glob get to directory"
66echo "get /bin/l* ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
67        || fail "get failed"
68for x in $GLOBFILES; do
69        cmp /bin/$x ${COPY}.dd/$x || fail "corrupted copy after get"
70done
71
72rm -f ${COPY}.dd/*
73verbose "$tid: get to local dir"
74echo "lcd ${COPY}.dd\nget $DATA" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
75        || fail "get failed"
76cmp $DATA ${COPY}.dd/ls || fail "corrupted copy after get"
77
78rm -f ${COPY}.dd/*
79verbose "$tid: glob get to local dir"
80echo "lcd ${COPY}.dd\nget /bin/l*" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
81        || fail "get failed"
82for x in $GLOBFILES; do
83        cmp /bin/$x ${COPY}.dd/$x || fail "corrupted copy after get"
84done
85
86rm -f ${COPY}
87verbose "$tid: put"
88echo "put $DATA $COPY" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
89	|| fail "put failed"
90cmp $DATA ${COPY} || fail "corrupted copy after put"
91
92rm -f ${COPY}.dd/*
93verbose "$tid: put to directory"
94echo "put $DATA ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
95	|| fail "put failed"
96cmp $DATA ${COPY}.dd/ls || fail "corrupted copy after put"
97
98rm -f ${COPY}.dd/*
99verbose "$tid: glob put to directory"
100echo "put /bin/l* ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
101	|| fail "put failed"
102for x in $GLOBFILES; do
103	cmp /bin/$x ${COPY}.dd/$x || fail "corrupted copy after put"
104done
105
106rm -f ${COPY}.dd/*
107verbose "$tid: put to local dir"
108echo "cd ${COPY}.dd\nput $DATA" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
109	|| fail "put failed"
110cmp $DATA ${COPY}.dd/ls || fail "corrupted copy after put"
111
112rm -f ${COPY}.dd/*
113verbose "$tid: glob put to local dir"
114echo "cd ${COPY}.dd\nput /bin/l*" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
115	|| fail "put failed"
116for x in $GLOBFILES; do
117        cmp /bin/$x ${COPY}.dd/$x || fail "corrupted copy after put"
118done
119
120verbose "$tid: rename"
121echo "rename $COPY ${COPY}.1" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
122	|| fail "rename failed"
123test -f ${COPY}.1 || fail "missing file after rename"
124cmp $DATA ${COPY}.1 >/dev/null 2>&1 || fail "corrupted copy after rename"
125
126verbose "$tid: rename directory"
127echo "rename ${COPY}.dd ${COPY}.dd2" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
128	|| fail "rename directory failed"
129test -d ${COPY}.dd && fail "oldname exists after rename directory"
130test -d ${COPY}.dd2 || fail "missing newname after rename directory"
131
132verbose "$tid: ln"
133echo "ln ${COPY}.1 ${COPY}.2" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 || fail "ln failed"
134test -L ${COPY}.2 || fail "missing file after ln"
135
136verbose "$tid: mkdir"
137echo "mkdir ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
138	|| fail "mkdir failed"
139test -d ${COPY}.dd || fail "missing directory after mkdir"
140
141# XXX do more here
142verbose "$tid: chdir"
143echo "chdir ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
144	|| fail "chdir failed"
145
146verbose "$tid: rmdir"
147echo "rmdir ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
148	|| fail "rmdir failed"
149test -d ${COPY}.1 && fail "present directory after rmdir"
150
151verbose "$tid: lmkdir"
152echo "lmkdir ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
153	|| fail "lmkdir failed"
154test -d ${COPY}.dd || fail "missing directory after lmkdir"
155
156# XXX do more here
157verbose "$tid: lchdir"
158echo "lchdir ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \
159	|| fail "lchdir failed"
160
161rm -rf ${COPY} ${COPY}.1 ${COPY}.2 ${COPY}.dd ${COPY}.dd2 ${BATCH}.*
162
163
164