summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2023-08-18 14:41:52 +0200
committerAnton Khirnov <anton@khirnov.net>2023-08-18 14:41:52 +0200
commit17e8aa8b1cc55f524e3034bdd7e7bad88be46125 (patch)
tree866c1a91a693ceab667967db29a13b58df4a5431
parent4303761fef51d5fd10a56d241b5fa63f5eae7a6f (diff)
lxc_rootfs_debootstrap: improve verbosity handling
-rwxr-xr-xlxc_rootfs_debootstrap19
1 files changed, 13 insertions, 6 deletions
diff --git a/lxc_rootfs_debootstrap b/lxc_rootfs_debootstrap
index 27d33f5..fcb21dd 100755
--- a/lxc_rootfs_debootstrap
+++ b/lxc_rootfs_debootstrap
@@ -193,11 +193,13 @@ class Bootstrapper:
def _debootstrap(self, release, dst_dir):
cmdline = ['cdebootstrap', '-f', 'minimal',
'--include=%s' % ','.join(include_pkgs), '--exclude=%s' % ','.join(exclude_pkgs)]
- if self._args.verbose:
+ if self._verbose > 1:
cmdline += ['--verbose']
+ elif self._verbose == 0:
+ cmdline += ['--quiet']
cmdline += [release, dst_dir]
- if self._args.verbose:
+ if self._verbose > 1:
sys.stderr.write('Executing: ' + ' '.join(cmdline) + '\n')
subprocess.run(cmdline, check = True)
@@ -205,7 +207,7 @@ class Bootstrapper:
dev_dir = os.open('dev', os.O_DIRECTORY, dir_fd = self._root_fd)
try:
for node in os.listdir(dev_dir):
- if self._verbose:
+ if self._verbose > 1:
sys.stderr.write('Removing /dev node: %s\n' % node)
try:
@@ -240,7 +242,9 @@ class Bootstrapper:
packages_all = set(res.stdout.split())
packages_auto = packages_all - set(include_pkgs)
- self._exec_chroot(['apt-mark', 'auto'] + list(packages_auto))
+ cmdline = ['apt-mark', 'auto'] + (self._verbose == 0) * ['-qq'] + list(packages_auto)
+
+ self._exec_chroot(cmdline)
def _clean_ssh_server(self):
etc_ssh_fd = os.open('ssh', os.O_DIRECTORY, dir_fd = self._etc_fd)
@@ -250,7 +254,7 @@ class Bootstrapper:
try:
for item in os.listdir(etc_ssh_fd):
if fnmatch(item, 'ssh_host_*_key*'):
- if self._verbose:
+ if self._verbose > 1:
sys.stderr.write('Removing SSH host key: %s\n' % item)
os.remove(item, dir_fd = etc_ssh_fd)
finally:
@@ -307,6 +311,9 @@ class Bootstrapper:
f.write("")
def _exec_chroot(self, cmdline, **kwargs):
+ if self._verbose > 1:
+ sys.stderr.write('Executing in chroot: %s\n' % cmdline)
+
return subprocess.run(['chroot', self._root_path] + cmdline, check = True, **kwargs)
parser = argparse.ArgumentParser(description = description)
@@ -314,7 +321,7 @@ parser = argparse.ArgumentParser(description = description)
parser.add_argument('release')
parser.add_argument('rootfs_dir')
-parser.add_argument('-v', '--verbose', action = 'store_true')
+parser.add_argument('-v', '--verbose', action = 'count', default = 0)
parser.add_argument('-l', '--locales',
default = 'en_US.UTF-8 UTF-8,en_DK.UTF-8 UTF-8',