mirror of
https://github.com/abraunegg/onedrive
synced 2024-06-17 05:06:17 +02:00
7f267a5a74
* Fix double quote to prevent globbing and word splitting
43 lines
1.4 KiB
Bash
43 lines
1.4 KiB
Bash
#!/bin/bash
|
|
#
|
|
# BASH completion code for OneDrive Linux Client
|
|
# (c) 2019 Norbert Preining
|
|
# License: GPLv3+ (as with the rest of the OneDrive Linux client project)
|
|
|
|
_onedrive()
|
|
{
|
|
local cur prev
|
|
|
|
COMPREPLY=()
|
|
cur=${COMP_WORDS[COMP_CWORD]}
|
|
prev=${COMP_WORDS[COMP_CWORD-1]}
|
|
|
|
options='--check-for-nomount --check-for-nosync --debug-https --disable-notifications --display-config --display-sync-status --download-only --disable-upload-validation --dry-run --enable-logging --force-http-1.1 --force-http-2 --local-first --logout -m --monitor --no-remote-delete --print-token --resync --skip-dot-files --skip-symlinks --synchronize --upload-only -v --verbose --version -h --help'
|
|
argopts='--create-directory --get-O365-drive-id --remove-directory --single-directory --source-directory'
|
|
|
|
# Loop on the arguments to manage conflicting options
|
|
for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do
|
|
#exclude some mutually exclusive options
|
|
[[ ${COMP_WORDS[i]} == '--synchronize' ]] && options=${options/--monitor}
|
|
[[ ${COMP_WORDS[i]} == '--monitor' ]] && options=${options/--synchronize}
|
|
done
|
|
|
|
case "$prev" in
|
|
--confdir|--syncdir)
|
|
_filedir
|
|
return 0
|
|
;;
|
|
--create-directory|--get-O365-drive-id|--remove-directory|--single-directory|--source-directory)
|
|
return 0
|
|
;;
|
|
*)
|
|
COMPREPLY=( $( compgen -W "$options $argopts" -- "$cur"))
|
|
return 0
|
|
;;
|
|
esac
|
|
|
|
# notreached
|
|
return 0
|
|
}
|
|
complete -F _onedrive onedrive
|