11305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#	$OpenBSD: sftp-batch.sh,v 1.4 2009/08/13 01:11:55 djm Exp $
21305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#	Placed in the Public Domain.
31305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
41305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtid="sftp batchfile"
51305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
61305e95ba6ff9fa202d0818caf10405df4b0f648Mike LockwoodDATA=/bin/ls${EXEEXT}
71305e95ba6ff9fa202d0818caf10405df4b0f648Mike LockwoodCOPY=${OBJ}/copy
81305e95ba6ff9fa202d0818caf10405df4b0f648Mike LockwoodBATCH=${OBJ}/sftp.bb
91305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
101305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodrm -rf ${COPY} ${COPY}.1 ${COPY}.2 ${COPY}.dd ${BATCH}.*
111305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
121305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodcat << EOF > ${BATCH}.pass.1
131305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	get $DATA $COPY
141305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	put ${COPY} ${COPY}.1
151305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	rm ${COPY}
161305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	-put ${COPY} ${COPY}.2
171305e95ba6ff9fa202d0818caf10405df4b0f648Mike LockwoodEOF
181305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
191305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodcat << EOF > ${BATCH}.pass.2
201305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	# This is a comment
211305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
221305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	# That was a blank line
231305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	ls
241305e95ba6ff9fa202d0818caf10405df4b0f648Mike LockwoodEOF
251305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
261305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodcat << EOF > ${BATCH}.fail.1
271305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	get $DATA $COPY
281305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	put ${COPY} ${COPY}.3
291305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	rm ${COPY}.*
301305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	# The next command should fail
311305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	put ${COPY}.3 ${COPY}.4
321305e95ba6ff9fa202d0818caf10405df4b0f648Mike LockwoodEOF
331305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
341305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodcat << EOF > ${BATCH}.fail.2
351305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	# The next command should fail
361305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	jajajajaja
371305e95ba6ff9fa202d0818caf10405df4b0f648Mike LockwoodEOF
381305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
391305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodverbose "$tid: good commands"
401305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood${SFTP} -b ${BATCH}.pass.1 -D ${SFTPSERVER} >/dev/null 2>&1 \
411305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	|| fail "good commands failed"
421305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
431305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodverbose "$tid: bad commands"
441305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood${SFTP} -b ${BATCH}.fail.1 -D ${SFTPSERVER} >/dev/null 2>&1 \
451305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	&& fail "bad commands succeeded"
461305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
471305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodverbose "$tid: comments and blanks"
481305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood${SFTP} -b ${BATCH}.pass.2 -D ${SFTPSERVER} >/dev/null 2>&1 \
491305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	|| fail "comments & blanks failed"
501305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
511305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodverbose "$tid: junk command"
521305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood${SFTP} -b ${BATCH}.fail.2 -D ${SFTPSERVER} >/dev/null 2>&1 \
531305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	&& fail "junk command succeeded"
541305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
551305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodrm -rf ${COPY} ${COPY}.1 ${COPY}.2 ${COPY}.dd ${BATCH}.*
561305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
571305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
58