]> git.siccegge.de Git - forks/vmdebootstrap.git/blobdiff - vmdebootstrap
Merge branch 'bugs'
[forks/vmdebootstrap.git] / vmdebootstrap
index 138d8a61bc26b39fb533ab241daa56fbe44f38b8..4894bae7455d93e92003b973ea1f7ccabaaf91c5 100755 (executable)
@@ -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?',
@@ -641,7 +644,11 @@ 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']:
+                for part in opt.split(' '):
+                    args.append('--%s' % part)
+        elif self.settings['variant']:
             args.append('--variant')
             args.append(self.settings['variant'])
         args += [self.settings['distribution'],
@@ -1017,14 +1024,12 @@ append initrd=%(initrd)s root=UUID=%(uuid)s ro %(kserial)s
         logging.debug(
             "%s usage: %s", self.settings['image'],
             self.runcmd(['du', self.settings['image']]))
-        with open('/dev/tty', 'w') as tty:
-            try:
+        try:
+            with open('/dev/tty', 'w') as tty:
                 cliapp.runcmd([script, rootdir, self.settings['image']], stdout=tty, stderr=tty)
-            except IOError:
-                subprocess.call([script, rootdir, self.settings['image']])
-        logging.debug(
-            "%s usage: %s", self.settings['image'],
-            self.runcmd(['du', self.settings['image']]))
+        except IOError:
+            logging.debug('tty unavailable, trying in headless mode.')
+            subprocess.call([script, rootdir, self.settings['image']])
 
     def create_tarball(self, rootdir):
         # Create a tarball of the disk's contents