FileManifest
¶
- class starlark_tugger.FileManifest¶
The
FileManifest
type represents a set of files and their content.FileManifest
instances are used to represent things like the final filesystem layout of an installed application.Conceptually, a
FileManifest
is a dict mapping relative paths to file content.- add_manifest(manifest: FileManifest)¶
This method overlays another :py:class`FileManifest` on this one. If the other manifest provides a path already in this manifest, its content will be replaced by what is in the other manifest.
- add_file(content: FileContent, path: Optional[str] = None, directory: Optional[str] = None)¶
Add a
FileContent
instance to this manifest, optionally controlling its path within the manifest.If neither
path
nordirectory
are specified, the file will be materialized in the root directory of the manifest with the filename given byFileContent.filename
.If
path
is provided, it defines the exact path within the manifest to use.If
directory
is provided, the manifest path is effectively computed the same asos.path.join(directory, content.filename)
.An error occurs if both
path
anddirectory
are non-None
.
- add_path(path: str, strip_prefix: str, force_read: bool = False)¶
This method adds a file on the filesystem to the manifest.
The following arguments are accepted:
path
The filesystem path to add.
strip_prefix
The string prefix to strip from the path. The remaining path will be stored in the manifest.
force_read
Whether to read the file data into memory now.
This can be set when reading temporary files.
- get_file(path: str) Optional[FileContent] ¶
Obtain a
FileContent
at a given path in the manifest, orNone
if no such path exists in the manifest.A copy of the content in the
FileManifest
is returned and mutations on the returned object will not be reflected in theFileManifest
.
- install(path: str, replace: bool = True)¶
This method writes the content of the
FileManifest
to a directory specified bypath
. The path is evaluated relative to the path specified byBUILD_PATH
.If
replace
is True (the default), the destination directory will be deleted and the final state of the destination directory should exactly match the state of theFileManifest
.Upon successful materialization of all files in the manifest, all written files will be assessed for code signing with the
file-manifest-install
action.
- remove(path: str) Optional[FileContent] ¶
Remove the entry in this manifest at
path
, returning aFileContent
representing the removed entry if there was one orNone
if the path isn’t tracked by the manifest.