Project

General

Profile

1 9800 aaronmk
#!/bin/bash -e
2
. "$(dirname "${BASH_SOURCE[0]}")"/util.sh
3
4
if self_not_included; then
5
6
alias use_sync='declare prefix=sync_; import_vars; unset prefix'
7
8 10009 aaronmk
upload() #usage: local_dir=... remote_url=serv:dir [swap=1] upload [opt|path]...
9
# swap: downloads instead of uploads
10 9800 aaronmk
# requires put from https://uutils.googlecode.com/svn/trunk/bin/put
11
{
12 9893 aaronmk
	echo_func; kw_params local_dir remote_url; echo_vars swap
13 9800 aaronmk
14 9889 aaronmk
	# change path args to --includes
15 9890 aaronmk
	local has_includes= args=()
16 9889 aaronmk
	local a; for a in "$@"; do
17
		if starts_with -- "$a"; then args+=("$a") # option, so leave as is
18
		else # path
19
			# also need to --include parent dirs for each --include path
20
			path_parents "$(base_dir="$local_dir" canon_rel_path "$a")"
21
			args+=("${dirs[@]/#/--include=/}") # prepend each with --include=/
22 9890 aaronmk
			has_includes=1
23 9889 aaronmk
		fi
24
	done
25 9890 aaronmk
	set -- "${args[@]}" ${has_includes:+--exclude="**"}
26 9811 aaronmk
27 10000 aaronmk
	# use .rsync_ignore
28
	set -- --filter="dir-merge,- .rsync_ignore" "$@"
29
30 9890 aaronmk
	src="$local_dir" dest="$remote_url" command put "$@"
31 9800 aaronmk
}
32
33
fi