From 17e8aa8b1cc55f524e3034bdd7e7bad88be46125 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Fri, 18 Aug 2023 14:41:52 +0200 Subject: lxc_rootfs_debootstrap: improve verbosity handling --- lxc_rootfs_debootstrap | 19 +++++++++++++------ 1 file 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', -- cgit v1.2.3