|
@@ -1,24 +1,45 @@
|
|
|
#!/usr/bin/python2
|
|
|
|
|
|
from __future__ import absolute_import
|
|
|
+import _winreg
|
|
|
+import os
|
|
|
+import sys
|
|
|
|
|
|
from qubes.storage.wni import QubesWniVmStorage
|
|
|
|
|
|
+DEFAULT_INSTALLDIR = 'c:\\program files\\Invisible Things Lab\\Qubes WNI'
|
|
|
+DEFAULT_STOREDIR = 'c:\\qubes'
|
|
|
+
|
|
|
def apply(system_path, vm_files, defaults):
|
|
|
- system_path['qubes_base_dir'] = 'c:\\qubes'
|
|
|
- system_path['config_template_pv'] = 'c:/program files/Invisible Things Lab/Qubes/vm-template.xml'
|
|
|
- system_path['config_template_hvm'] = 'c:/program files/Invisible Things Lab/Qubes/vm-template-hvm.xml'
|
|
|
- system_path['qubes_icon_dir'] = \
|
|
|
- 'c:/program files/Invisible Things Lab/Qubes/icons'
|
|
|
+ system_path['qubes_base_dir'] = DEFAULT_STOREDIR
|
|
|
+ installdir = DEFAULT_INSTALLDIR
|
|
|
+ try:
|
|
|
+ reg_key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE,
|
|
|
+ "Software\\Invisible Things Lab\\Qubes WNI")
|
|
|
+ installdir = _winreg.QueryValueEx(reg_key, "InstallDir")[0]
|
|
|
+ system_path['qubes_base_dir'] = \
|
|
|
+ _winreg.QueryValueEx(reg_key, "StoreDir")[0]
|
|
|
+ except WindowsError as e:
|
|
|
+ print >>sys.stderr, \
|
|
|
+ "WARNING: invalid installation: missing registry entries (%s)" \
|
|
|
+ % str(e)
|
|
|
+
|
|
|
+ system_path['config_template_pv'] = \
|
|
|
+ os.path.join(installdir, 'vm-template.xml')
|
|
|
+ system_path['config_template_hvm'] = \
|
|
|
+ os.path.join(installdir, 'vm-template-hvm.xml')
|
|
|
+ system_path['qubes_icon_dir'] = os.path.join(installdir, 'icons')
|
|
|
system_path['qubesdb_daemon_path'] = \
|
|
|
- 'c:/program files/Invisible Things Lab/Qubes/bin/qubesdb-daemon.exe'
|
|
|
+ os.path.join(installdir, 'bin\\qubesdb-daemon.exe')
|
|
|
system_path['qrexec_daemon_path'] = \
|
|
|
- 'c:/program files/Invisible Things Lab/Qubes/bin/qrexec-daemon.exe'
|
|
|
+ os.path.join(installdir, 'bin\\qrexec-daemon.exe')
|
|
|
system_path['qrexec_client_path'] = \
|
|
|
- 'c:/program files/Invisible Things Lab/Qubes/bin/qrexec-client.exe'
|
|
|
+ os.path.join(installdir, 'bin\\qrexec-client.exe')
|
|
|
+ system_path['qrexec_policy_dir'] = \
|
|
|
+ os.path.join(installdir, 'qubes-rpc\\policy')
|
|
|
# Specific to WNI - normally VM have this file
|
|
|
system_path['qrexec_agent_path'] = \
|
|
|
- 'c:/program files/Invisible Things Lab/Qubes/bin/qrexec-agent.exe'
|
|
|
+ os.path.join(installdir, 'bin\\qrexec-agent.exe')
|
|
|
|
|
|
defaults['libvirt_uri'] = 'wni:///'
|
|
|
defaults['storage_class'] = QubesWniVmStorage
|