for d in ("cache", "lib"):
(metadata_dir / d / subdir).mkdir(parents=True, exist_ok=True)
+ src = metadata_dir / "lib" / subdir
+ for p in last.distribution.installer.package_manager(last).state_subdirs():
+ (src / p).mkdir(parents=True, exist_ok=True)
+
(last.package_cache_dir_or_default() / "cache" / subdir).mkdir(parents=True, exist_ok=True)
# Sync repository metadata unless explicitly disabled.
context,
force=context.args.force > 1 or context.config.cacheonly == Cacheonly.never,
)
-
src = metadata_dir / "cache" / subdir
dst = last.package_cache_dir_or_default() / "cache" / subdir
return []
@classmethod
- def state_subdirs(cls, state: Path) -> list[Path]:
+ def state_subdirs(cls) -> list[Path]:
return []
@classmethod
subdir = context.config.distribution.installer.package_manager(context.config).subdir(context.config)
src = context.metadata_dir / "lib" / subdir
- mounts += ["--bind", src, Path("/var/lib") / subdir]
+ mounts += flatten(
+ ("--bind", src / state_subdir, Path("/var/lib") / subdir / state_subdir)
+ for state_subdir in context.config.distribution.installer.package_manager(
+ context.config
+ ).state_subdirs()
+ )
src = context.metadata_dir / "cache" / subdir
caches = context.config.distribution.installer.package_manager(context.config).package_subdirs(src)
return ["*.deb", "*.ddeb"]
@classmethod
- def state_subdirs(cls, state: Path) -> list[Path]:
- return [state / "lists"]
+ def state_subdirs(cls) -> list[Path]:
+ return [Path("lists")]
@classmethod
def dpkg_cmd(cls, command: str) -> list[PathString]:
return ["*.pkg.tar*"]
@classmethod
- def state_subdirs(cls, state: Path) -> list[Path]:
- return [state / "sync"]
+ def state_subdirs(cls) -> list[Path]:
+ return [Path("sync")]
@classmethod
def scripts(cls, context: Context) -> dict[str, list[PathString]]: