[Libguestfs] [PATCH] bash: add a completion module for virt-v2v

Pino Toscano ptoscano at redhat.com
Wed Nov 26 12:06:12 UTC 2014


---
 bash/Makefile.am |  3 ++-
 bash/virt-v2v    | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 62 insertions(+), 1 deletion(-)
 create mode 100644 bash/virt-v2v

diff --git a/bash/Makefile.am b/bash/Makefile.am
index ee9c10c..2c8e722 100644
--- a/bash/Makefile.am
+++ b/bash/Makefile.am
@@ -22,7 +22,8 @@ scripts = \
 	guestmount \
 	virt-alignment-scan \
 	virt-rescue \
-	virt-resize
+	virt-resize \
+	virt-v2v
 
 symlinks = \
 	virt-builder \
diff --git a/bash/virt-v2v b/bash/virt-v2v
new file mode 100644
index 0000000..a70971b
--- /dev/null
+++ b/bash/virt-v2v
@@ -0,0 +1,60 @@
+# virt-v2v bash completion script -*- shell-script -*-
+# Copyright (C) 2014 Red Hat Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+_virt_v2v ()
+{
+    local cur prev words cword split
+    local shortopts longopts items
+
+    _init_completion -s || return
+
+    case "$prev" in
+        -i)
+            items="$(virt-v2v --machine-readable | awk -F':' '/input:/ {print $2;}')"
+            COMPREPLY=( $( compgen -W "$items" -- "$cur") )
+            return ;;
+        -o)
+            items="$(virt-v2v --machine-readable | awk -F':' '/output:/ {print $2;}')"
+            COMPREPLY=( $( compgen -W "$items" -- "$cur") )
+            return ;;
+        -oa)
+            COMPREPLY=( $( compgen -W "sparse preallocated" -- "$cur") )
+            return ;;
+        --vmtype)
+            COMPREPLY=( $( compgen -W "server desktop" -- "$cur") )
+            return ;;
+
+    esac
+
+    case "$cur" in
+        --*)
+            # --options
+            longopts="$(virt-v2v --long-options)"
+            COMPREPLY=( $(compgen -W "$longopts" -- "$cur") )
+            return ;;
+        -*)
+            # -o and --options
+            shortopts="$(virt-v2v --short-options)"
+            longopts="$(virt-v2v --long-options)"
+            COMPREPLY=( $(compgen -W "$shortopts $longopts" -- "$cur") )
+            return ;;
+        *)
+            COMPREPLY=( $(compgen "$cur") )
+            return ;;
+    esac
+} &&
+complete -o default -F _virt_v2v virt-v2v
-- 
1.9.3




More information about the Libguestfs mailing list