###########################################################################
#                            TextMate Snippets                            #
###########################################################################
snippet #!
#!/bin/sh

endsnippet

snippet !env "#!/usr/bin/env (!env)"
#!/usr/bin/env bash 

endsnippet

snippet temp "Tempfile"
${1:TMPFILE}="$(mktemp -t ${2:`!p
snip.rv = re.sub(r'[^a-zA-Z]', '_', snip.fn) or "untitled"
`})"
${3:${4/(.+)/trap "/}${4:rm -f '$${1/.*\s//}'}${4/(.+)/" 0               # EXIT\n/}${5/(.+)/trap "/}${5:rm -f '$${1/.*\s//}'; exit 1}${5/(.+)/" 2       # INT\n/}${6/(.+)/trap "/}${6:rm -f '$${1/.*\s//}'; exit 1}${6/(.+)/" 1 15    # HUP TERM\n/}}

endsnippet

snippet case "case .. esac (case)"
case ${1:word} in
	${2:pattern} )
		$0;;
esac
endsnippet

snippet elif "elif .. (elif)"
elif ${2:[[ ${1:condition} ]]}; then
	${0:#statements}
endsnippet

snippet for "for ... done (for)"
for (( i = 0; i < ${1:10}; i++ )); do
	${0:#statements}
done
endsnippet

snippet forin "for ... in ... done (forin)"
for ${1:i}${2/.+/ in /}${2:words}; do
	${0:#statements}
done
endsnippet

snippet here "here document (here)"
<<-${2:'${1:TOKEN}'}
	$0
${1/['"`](.+)['"`]/$1/}
endsnippet

snippet if "if ... then (if)"
if ${2:[[ ${1:condition} ]]}; then
	${0:#statements}
fi
endsnippet

snippet until "until ... (done)"
until ${2:[[ ${1:condition} ]]}; do
	${0:#statements}
done
endsnippet

snippet while "while ... (done)"
while ${2:[[ ${1:condition} ]]}; do
	${0:#statements}
done
endsnippet

# vim:ft=snippets: