diff options
Diffstat (limited to 'examples')
-rwxr-xr-x | examples/chroottar.py | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/examples/chroottar.py b/examples/chroottar.py index f43add4..30017e5 100755 --- a/examples/chroottar.py +++ b/examples/chroottar.py @@ -20,6 +20,12 @@ import linuxnamespaces import linuxnamespaces.tarutils +class TarFile( + linuxnamespaces.tarutils.ZstdTarFile, linuxnamespaces.tarutils.XAttrTarFile +): + pass + + def main() -> None: parser = argparse.ArgumentParser() parser.add_argument( @@ -49,9 +55,7 @@ def main() -> None: parentsock.close() # Once we drop privileges via setreuid and friends, we may become # unable to open basetar or to chdir to tdir, so do those early. - with linuxnamespaces.tarutils.ZstdTarFile.open( - args.basetar, "r:*" - ) as tarf: + with TarFile.open(args.basetar, "r:*") as tarf: os.chdir(tdir) linuxnamespaces.unshare( linuxnamespaces.CloneFlags.NEWUSER @@ -112,9 +116,7 @@ def main() -> None: if args.save and ret == 0: tmptar = f"{args.basetar}.new" try: - with linuxnamespaces.tarutils.ZstdTarFile.open( - tmptar, "x:" + comptype - ) as tout: + with TarFile.open(tmptar, "x:" + comptype) as tout: tout.add(tdir, ".") os.rename(tmptar, args.basetar) except: |