@@ -10,8 +10,9 @@ from generator.practice.generate import generate_practice_scores
|
||||
from generator.score import count_json_files, validate_generated_tree
|
||||
from generator.summary import validate_expected_performance_summary, validate_practice_variants
|
||||
from generator.musicxml import load_musicxml
|
||||
from generator.engraving import engrave_tree
|
||||
|
||||
RUNTIME_FONT_FILES = ("Petaluma.otf", "PetalumaScript.otf", "OFL.txt")
|
||||
RUNTIME_FONT_FILES = ("PetalumaScript.otf", "OFL.txt")
|
||||
|
||||
def copy_runtime_fonts(static_assets_dir: Path, output_dir: Path) -> None:
|
||||
source = static_assets_dir / "fonts" / "petaluma"
|
||||
@@ -25,7 +26,7 @@ def parse_args() -> argparse.Namespace:
|
||||
parser.add_argument("--data-dir", type=Path, required=True)
|
||||
parser.add_argument("--output-dir", type=Path, required=True)
|
||||
parser.add_argument("--static-assets-dir", type=Path, default=Path("package/assets"))
|
||||
parser.add_argument("--clean", action="store_true")
|
||||
parser.add_argument("--clean", action="store_true", help="Compatibility option; generated assets are always replaced as a complete bundle.")
|
||||
parser.add_argument("--check", action="store_true")
|
||||
return parser.parse_args()
|
||||
|
||||
@@ -38,8 +39,6 @@ def generate_assets(args: argparse.Namespace) -> None:
|
||||
output_dir.parent.mkdir(parents=True, exist_ok=True)
|
||||
with tempfile.TemporaryDirectory(prefix='.vamp-assets-', dir=output_dir.parent) as temporary:
|
||||
staged = Path(temporary) / 'assets'
|
||||
if not args.clean and output_dir.exists():
|
||||
shutil.copytree(output_dir, staged)
|
||||
staged.mkdir(parents=True, exist_ok=True)
|
||||
copy_runtime_fonts(static_assets_dir, staged)
|
||||
performance_count = generate_performance_scores(data_dir / 'songs', staged / 'songs')
|
||||
@@ -48,6 +47,8 @@ def generate_assets(args: argparse.Namespace) -> None:
|
||||
if args.check:
|
||||
validate_expected_performance_summary(data_dir / 'expected' / 'performance_summary.json', staged / 'songs')
|
||||
validate_practice_variants(staged / 'practice')
|
||||
engrave_tree(staged, static_assets_dir / 'fonts' / 'petaluma')
|
||||
validate_generated_tree(staged)
|
||||
backup = Path(temporary) / 'previous'
|
||||
if output_dir.exists():
|
||||
output_dir.rename(backup)
|
||||
|
||||
Reference in New Issue
Block a user