'Package up filesystem contents as a tarball.'

@contextmanager
def reader(self, remote_snapshots=None):

    result = BytesIO()
    tarball = TarFile(fileobj=result, mode='w')
    for child in self.path.children():
        tarball.add(child.path, arcname=child.basename(), recursive=True)
    tarball.close()
    if remote_snapshots:
        result.write(u'\nincremental    stream    based    on\n{}'.format(u'\n'.join((snapshot.name for snapshot in remote_snapshots))).encode('ascii'))
    result.seek(0, 0)
    (yield result)
