Files
RetroDebian/bases/voodoo2/entry.py
2026-04-02 23:53:26 +02:00

51 lines
1.7 KiB
Python

#!/usr/bin/env python3
from __future__ import annotations
import sys
from pathlib import Path
THIS_FILE = Path(__file__).resolve()
PROJECT_ROOT = THIS_FILE.parents[2]
PY_ROOT = PROJECT_ROOT / 'builder' / 'py'
if str(PY_ROOT) not in sys.path:
sys.path.insert(0, str(PY_ROOT))
from retrobuilder.context import BuildContext
from retrobuilder.entrypoints import BaseEntry, cli_dispatch
from retrobuilder.model import BaseSpec
SPEC = BaseSpec(
description='Sample base used to validate the V2 builder flow.',
parent='retrodebian',
docker_overrides={
# 'pre-feature': {'image': 'retrodebian/custom-lenny:latest'},
# 'post-feature': {'dockerfile': 'bases/sample-base/Dockerfile.lenny'},
},
)
class Entry(BaseEntry):
def _marker(self, ctx: BuildContext, name: str) -> Path:
ctx.artifacts_root.mkdir(parents=True, exist_ok=True)
return ctx.artifacts_root / name
def pre_gen(self, ctx: BuildContext) -> None:
self._marker(ctx, 'pre-gen.txt').write_text('sample-base pre-gen\n', encoding='utf-8')
def post_gen(self, ctx: BuildContext) -> None:
self._marker(ctx, 'post-gen.txt').write_text('sample-base post-gen\n', encoding='utf-8')
def pre_feature(self, ctx: BuildContext) -> None:
notes = ctx.live_dir / 'builder-notes'
notes.mkdir(parents=True, exist_ok=True)
(notes / 'base-pre-feature.txt').write_text('sample-base pre-feature\n', encoding='utf-8')
def post_feature(self, ctx: BuildContext) -> None:
notes = ctx.live_dir / 'builder-notes'
notes.mkdir(parents=True, exist_ok=True)
(notes / 'base-post-feature.txt').write_text('sample-base post-feature\n', encoding='utf-8')
if __name__ == '__main__':
raise SystemExit(cli_dispatch(SPEC, Entry))