blob: 0bf538987efb8ed6794fc9cc0d67518043ba47e8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
# bash completion for rsync -*- shell-script -*-
_rsync()
{
local cur prev words cword split
_init_completion -s -n : || return
case $prev in
--config | --password-file | --include-from | --exclude-from | --files-from | \
--log-file | --write-batch | --only-write-batch | --read-batch)
compopt +o nospace
_filedir
return
;;
--temp-dir | --compare-dest | --backup-dir | --partial-dir | --copy-dest | \
--link-dest | -!(-*)T)
compopt +o nospace
_filedir -d
return
;;
--rsh | -!(-*)e)
compopt +o nospace
COMPREPLY=($(compgen -W 'rsh ssh' -- "$cur"))
return
;;
--compress-level)
compopt +o nospace
COMPREPLY=($(compgen -W '{1..9}' -- "$cur"))
return
;;
esac
$split && return
_expand || return
case $cur in
-*)
COMPREPLY=($(compgen -W '--verbose --quiet --no-motd --checksum
--archive --recursive --relative --no-implied-dirs
--backup --backup-dir= --suffix= --update --inplace --append
--append-verify --dirs --old-dirs --links --copy-links
--copy-unsafe-links --safe-links --copy-dirlinks
--keep-dirlinks --hard-links --perms --executability --chmod=
--acls --xattrs --owner --group --devices --copy-devices
--specials --times --omit-dir-times --super --fake-super
--sparse --dry-run --whole-file --no-whole-file
--one-file-system --block-size= --rsh= --rsync-path=
--existing --ignore-existing --remove-source-files --delete
--delete-before --delete-during --delete-delay --delete-after
--delete-excluded --ignore-errors --force --max-delete=
--max-size= --min-size= --partial --partial-dir=
--delay-updates --prune-empty-dirs --numeric-ids --timeout=
--contimeout= --ignore-times --size-only --modify-window=
--temp-dir= --fuzzy --compare-dest= --copy-dest= --link-dest=
--compress --compress-level= --skip-compress= --cvs-exclude
--filter= --exclude= --exclude-from= --include= --include-from=
--files-from= --from0 --protect-args --address= --port=
--sockopts= --blocking-io --no-blocking-io --stats
--8-bit-output --human-readable --progress --itemize-changes
--out-format= --log-file= --log-file-format= --password-file=
--list-only --bwlimit= --write-batch= --only-write-batch=
--read-batch= --protocol= --iconv= --ipv4 --ipv6 --version
--help --daemon --config= --no-detach' -- "$cur"))
[[ ${COMPREPLY-} == *= ]] || compopt +o nospace
;;
*:*)
# find which remote shell is used
local i shell=ssh
for ((i = 1; i < cword; i++)); do
if [[ ${words[i]} == -@(e|-rsh) ]]; then
shell=${words[i + 1]}
break
fi
done
[[ $shell == ssh ]] && _xfunc ssh _scp_remote_files
;;
*)
_known_hosts_real -c -a -- "$cur"
_xfunc ssh _scp_local_files
;;
esac
} &&
complete -F _rsync -o nospace rsync
# ex: filetype=sh
|