[virt-manager] [PATCH v2 10/10] setup.py: Install the bash completion files

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Signed-off-by: Lin Ma <lma@xxxxxxxx>
---
 setup.py | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/setup.py b/setup.py
index 658e6503..2d3446cd 100755
--- a/setup.py
+++ b/setup.py
@@ -20,6 +20,13 @@ import distutils.dist
 import distutils.log
 import distutils.sysconfig
 
+from subprocess import getstatusoutput
+
+def bash_completion_dir():
+    (sts, output) = getstatusoutput(
+        'pkg-config --variable=completionsdir bash-completion')
+    return output if not sts and output else '/etc/bash_completion.d'
+
 if sys.version_info.major < 3:
     print("virt-manager is python3 only. Run this as ./setup.py")
     sys.exit(1)
@@ -218,10 +225,29 @@ class my_build(distutils.command.build.build):
                 self.distribution.data_files.append((dest, icons))
 
 
+    def _make_bash_completion_files(self):
+        scripts = ["virt-install", "virt-clone", "virt-convert", "virt-xml"]
+        path ="data/bash-completion"
+        for script in scripts:
+            print("Generating %s/%s" % (path, script))
+            ret = os.system('cp -f '
+                            '%s/virtmanager %s/%s' % (path, path, script))
+            if ret != 0:
+                raise RuntimeError("Copying template file "
+                                   "%s/virtmanager to %s/%s' failed."
+                                   % (path, path, script))
+
+            ret = os.system('sed -i s/virtmanager/%s/ %s/%s'
+                            % (script, path, script))
+            if ret != 0:
+                raise RuntimeError("Updating %s/%s' failed." % (path, script))
+
+
     def run(self):
         self._make_bin_wrappers()
         self._make_man_pages()
         self._build_icons()
+        self._make_bash_completion_files()
 
         self.run_command("build_i18n")
         distutils.command.build.build.run(self)
@@ -663,6 +689,7 @@ distutils.core.setup(
         ("share/virt-manager/virtinst/devices", glob.glob("virtinst/devices/*.py")),
         ("share/virt-manager/virtinst/domain", glob.glob("virtinst/domain/*.py")),
         ("share/virt-manager/virtconv", glob.glob("virtconv/*.py")),
+        (bash_completion_dir(), glob.glob("data/bash-completion/virt-*")),
     ],
 
     cmdclass={
-- 
2.16.2

_______________________________________________
virt-tools-list mailing list
virt-tools-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/virt-tools-list



[Index of Archives]     [Linux Virtualization]     [KVM Development]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]     [Video 4 Linux]

  Powered by Linux