summaryrefslogtreecommitdiff
path: root/app-backup/snapper/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2019-11-03 16:06:58 +0000
committerV3n3RiX <venerix@redcorelinux.org>2019-11-03 16:06:58 +0000
commitbd4aeefe33e63f613512604e47bfca7b2187697d (patch)
treeadb35b5a9a00ee7ea591ab0c987f70167c23b597 /app-backup/snapper/files
parent48ece6662cbd443015f5a57ae6d8cbdbd69ef37c (diff)
gentoo resync : 03.11.2019
Diffstat (limited to 'app-backup/snapper/files')
-rw-r--r--app-backup/snapper/files/snapper.bash200
1 files changed, 200 insertions, 0 deletions
diff --git a/app-backup/snapper/files/snapper.bash b/app-backup/snapper/files/snapper.bash
new file mode 100644
index 000000000000..e5ca4134342a
--- /dev/null
+++ b/app-backup/snapper/files/snapper.bash
@@ -0,0 +1,200 @@
+_snapper()
+{
+ local configdir="/etc/snapper/configs"
+ local cur prev words cword
+ _init_completion || return
+
+ local GLOGAL_SNAPPER_OPTIONS='
+ -q --quiet
+ -v --verbose
+ --utc
+ --iso
+ -t --table-style
+ -c --config
+ -r --root
+ --no-dbus
+ --version
+ --help
+ '
+
+ # see if the user selected a command already
+ local COMMANDS=(
+ "list-configs" "create-config" "delete-config" "set-config"
+ "list" "ls"
+ "create" "modify" "delete" "remove" "rm"
+ "mount" "umount"
+ "status" "diff" "xadiff"
+ "undochange" "rollback"
+ "setup-quota"
+ "cleanup")
+
+ local command i
+ for (( i=0; i < ${#words[@]}-1; i++ )); do
+ if [[ ${COMMANDS[@]} =~ ${words[i]} ]]; then
+ command=${words[i]}
+ break
+ fi
+ done
+
+ case $prev in
+ --version|--help)
+ return 0
+ ;;
+ esac
+
+ # supported options per command
+ if [[ "$cur" == -* ]]; then
+ case $command in
+ create-config)
+ COMPREPLY=( $( compgen -W '--fstype -f
+ --templete -t' -- "$cur" ) )
+ return 0
+ ;;
+ list|ls)
+ COMPREPLY=( $( compgen -W '--type -t
+ --all-configs -a' -- "$cur" ) )
+ return 0
+ ;;
+ create)
+ COMPREPLY=( $( compgen -W '--type -t
+ --pre-number
+ --print-number -p
+ --description -d
+ --cleanup-algorithm -c
+ --userdata -u
+ --command' -- "$cur" ) )
+ return 0
+ ;;
+ modify)
+ COMPREPLY=( $( compgen -W '--description -d
+ --cleanup-algorithm -c
+ --userdata -u' -- "$cur" ) )
+ return 0
+ ;;
+ delete|remove|rm)
+ COMPREPLY=( $( compgen -W '--sync -s
+ ' -- "$cur" ) )
+ return 0
+ ;;
+ status)
+ COMPREPLY=( $( compgen -W '--output -o
+ ' -- "$cur" ) )
+ return 0
+ ;;
+ diff)
+ COMPREPLY=( $( compgen -W '--input -i
+ --diff-cmd
+ --extensions -x' -- "$cur" ) )
+ return 0
+ ;;
+ undochange)
+ COMPREPLY=( $( compgen -W '--input -i
+ ' -- "$cur" ) )
+ return 0
+ ;;
+ rollback)
+ COMPREPLY=( $( compgen -W '--print-number -p
+ --description -d
+ --cleanup-algorithm -c
+ --userdata -u' -- "$cur" ) )
+ return 0
+ ;;
+ *)
+ COMPREPLY=( $( compgen -W "$GLOGAL_SNAPPER_OPTIONS" -- "$cur" ) )
+ return 0
+ ;;
+ esac
+ fi
+
+ # specific command arguments
+ if [[ -n $command ]]; then
+ case $command in
+ create-config)
+ case "$prev" in
+ --fstype|-f)
+ COMPREPLY=( $( compgen -W 'btrfs ext4 lvm(xfs) lvm(ext4)
+ ' -- "$cur" ) )
+ ;;
+ esac
+ return 0
+ ;;
+ list)
+ case "$prev" in
+ --type|-t)
+ COMPREPLY=( $( compgen -W 'all single pre-post
+ ' -- "$cur" ) )
+ ;;
+ esac
+ return 0
+ ;;
+ create)
+ case "$prev" in
+ --type|-t)
+ COMPREPLY=( $( compgen -W 'single pre post
+ ' -- "$cur" ) )
+ ;;
+ --pre-number)
+ COMPREPLY=( $( compgen -W '
+ ' -- "$cur" ) )
+ ;;
+ --cleanup-algorithm|-c)
+ COMPREPLY=( $( compgen -W 'empty-pre-post timeline number
+ ' -- "$cur" ) )
+ ;;
+ esac
+ return 0
+ ;;
+ modify)
+ case "$prev" in
+ --cleanup-algorithm|-c)
+ COMPREPLY=( $( compgen -W 'empty-pre-post timeline number
+ ' -- "$cur" ) )
+ ;;
+ esac
+ return 0
+ ;;
+ status)
+ case "$prev" in
+ --output|-o)
+ COMPREPLY=( $( compgen -f -- "$cur" ) )
+ ;;
+ esac
+ return 0
+ ;;
+ cleanup)
+ case "$prev" in
+ empty-pre-post|timeline|number)
+ ;;
+ *)
+ COMPREPLY=( $( compgen -W 'empty-pre-post timeline number
+ ' -- "$cur" ) )
+ ;;
+ esac
+ return 0
+ ;;
+ diff)
+ return 0
+ ;;
+ undochange)
+ return 0
+ ;;
+ rollback)
+ case "$prev" in
+ --cleanup-algorithm|-c)
+ COMPREPLY=( $( compgen -W 'empty-pre-post timeline number
+ ' -- "$cur" ) )
+ ;;
+ esac
+ return 0
+ ;;
+ esac
+ fi
+
+ # no command yet, show what commands we have
+ if [ "$command" = "" ]; then
+ COMPREPLY=( $( compgen -W '${COMMANDS[@]} ${GLOGAL_SNAPPER_OPTIONS[@]}' -- "$cur" ) )
+ fi
+
+ return 0
+} &&
+complete -F _snapper snapper