]> git.siccegge.de Git - forks/vmdebootstrap.git/blobdiff - vmdebootstrap
Add support for debootstrapopts
[forks/vmdebootstrap.git] / vmdebootstrap
index e44fe1e5a5ca2f10434c786fa89bf8846b1ed34a..163ee41d59d3147c48265bb500fc6bcfd690c9df 100755 (executable)
@@ -30,7 +30,7 @@ import time
 from distro_info import DebianDistroInfo, UbuntuDistroInfo
 
 
-__version__ = '0.9'
+__version__ = '0.10'
 
 # pylint: disable=invalid-name,line-too-long,missing-docstring,too-many-branches
 
@@ -125,7 +125,10 @@ class VmDebootstrap(cliapp.Application):  # pylint: disable=too-many-public-meth
             'set up foreign debootstrap environment using provided program (ie binfmt handler)')
         self.settings.string(
             ['variant'],
-            'select debootstrap variant it not using the default')
+            'select debootstrap variant if not using the default [deprecated]')
+        self.settings.string_list(
+            ['debootstrapopts'],
+            'pass additional options to debootstrap'),
         self.settings.boolean(
             ['extlinux'],
             'install extlinux?',
@@ -243,7 +246,8 @@ class VmDebootstrap(cliapp.Application):  # pylint: disable=too-many-public-meth
         if not self.settings['use-uefi'] and self.settings['esp-size'] != 5242880:
             raise cliapp.AppException(
                 'You must specify use-uefi for esp-size to have effect')
-        if self.efi_arch_table[self.settings['arch']]['exclusive'] and\
+        if self.settings['arch'] in self.efi_arch_table and\
+                self.efi_arch_table[self.settings['arch']]['exclusive'] and\
                 not self.settings['use-uefi']:
             raise cliapp.AppException(
                 'Only UEFI is supported on %s' % self.settings['arch'])
@@ -262,7 +266,7 @@ class VmDebootstrap(cliapp.Application):  # pylint: disable=too-many-public-meth
 
         # wheezy (which became oldstable on 04/25/2015) only had amd64 uefi
         if self.was_oldstable(datetime.date(2015, 4, 26)):
-            if self.settings['arch'] != 'amd64':
+            if self.settings['use-uefi'] and self.settings['arch'] != 'amd64':
                 raise cliapp.AppException(
                     'Only amd64 supports UEFI in Wheezy')
 
@@ -640,7 +644,10 @@ class VmDebootstrap(cliapp.Application):  # pylint: disable=too-many-public-meth
                 '--include=%s' % ','.join(include))
         if self.settings['foreign']:
             args.append('--foreign')
-        if self.settings['variant']:
+        if self.settings['debootstrapopts']:
+            for opt in self.settings['debootstrapopts']:
+                args.append('--%s' % opt)
+        elif self.settings['variant']:
             args.append('--variant')
             args.append(self.settings['variant'])
         args += [self.settings['distribution'],