def _version_manifest(self, vdir):
        """Get the bootstrap manifest for the given version directory.

        This is the set of files/directories that the given version expects
        to be in the main app directory.
        """
        vsdir = self._get_versions_dir()
        mpath = os.path.join(vsdir, vdir, ESKY_CONTROL_DIR)
        mpath = os.path.join(mpath, "bootstrap-manifest.txt")
        #  TODO: remove compatability hooks for ESKY_APPDATA_DIR="".
        if not os.path.exists(mpath):
            if vsdir == self.appdir:
                mpath = os.path.join(self.appdir, ESKY_APPDATA_DIR, vdir,
                                     ESKY_CONTROL_DIR)
            else:
                mpath = os.path.join(self.appdir, vdir, ESKY_CONTROL_DIR)
            mpath = os.path.join(mpath, "bootstrap-manifest.txt")
        manifest = set()
        try:
            with open(mpath, "rt") as mf:
                for ln in mf:
                    #  Guard against malicious input, since we might try
                    #  to manipulate these files with root privs.
                    nm = os.path.normpath(ln.strip())
                    assert not os.path.isabs(nm)
                    assert not nm.startswith("..")
                    manifest.add(nm)
        except __HOLE__:
            pass
        return manifest
dataset/ETHPy150Open cloudmatrix/esky/esky/__init__.py/Esky._version_manifest