import urllib, sys, optparse, re, subprocess
-kernel_pkg_re = re.compile('linux-(generic|firmware|headers|image|backports|ec2|source|virtual|preempt)')
+kernel_pkg_re = re.compile('^linux-(generic|firmware|headers|image|backports|ec2|source|virtual|preempt)')
+no_remove_re = re.compile('^bcmwl-|^dkms|^grub|^xserver-xorg-video-intel')
+no_install_re = re.compile('^ubiquity|^casper|debian-install')
def parse_argv():
'''Parse CLI options.
pkg = l.split()[0]
if options.keep_kernel and kernel_pkg_re.match(pkg):
continue
+ if no_install_re.search(pkg):
+ continue
selection += '%s\tinstall\n' % pkg
# add local kernel packages on --keep-kernel
-if options.keep_kernel:
- dpkg = subprocess.Popen(['dpkg', '--get-selections'],
- stdout=subprocess.PIPE)
- for l in dpkg.stdout:
- pkg, status = l.split()
- if status != 'install':
- continue
- if kernel_pkg_re.match(pkg):
- selection += '%s\tinstall\n' % pkg
+dpkg = subprocess.Popen(['dpkg', '--get-selections'],
+ stdout=subprocess.PIPE)
+for l in dpkg.stdout:
+ pkg, status = l.split()
+ if status != 'install':
+ continue
+ if options.keep_kernel and kernel_pkg_re.match(pkg):
+ selection += '%s\tinstall\n' % pkg
+ if no_remove_re.search(pkg):
+ selection += '%s\tinstall\n' % pkg
if subprocess.call(['which', 'dselect'], stdout=subprocess.PIPE) != 0:
print >> sys.stderr, 'INFO: installing dselect (needed by this script)'