1
0
Fork 0
dotfiles/.config/zsh/functions/putwww

33 lines
754 B
Bash
Executable File

#!/usr/bin/env zsh
# Put files on a webspace via sftp
setopt LOCAL_OPTIONS ERR_RETURN NO_UNSET PIPE_FAIL
zmodload zsh/zutil
local -a o_dir=(-d "")
local -a o_help=()
zparseopts -D -K -- d:=o_dir h=o_help
if [[ ${#o_help} -ne 0 || ! -v 1 ]]; then
local ret=$(( ${#o_help} ^ 1 ))
print -u $(( 1 + ${ret} )) "usage: ${0} [-h] [-d REMOTE SUBDIR] <FILE> …"
return ${ret}
fi
local dir=""
[[ -n ${o_dir[2]} ]] && dir=${(q)o_dir[2]}/
local -a putcmds
for file in ${@}; do
putcmds+="put ${(q)file}"
done
sftp tastytea.de <<EOF
cd /var/www/tastytea.de/files/${dir}
$(print -l ${(q)putcmds})
EOF
for file in "${@}"; do
local url=https://tastytea.de/files/"${dir}${file##*/}"
url=${url// /%20}
print '\e[1;95m→\e[0m' ${url}
done