23 lines
1.2 KiB
JavaScript
23 lines
1.2 KiB
JavaScript
import fs from 'node:fs'
|
||
import path from 'node:path'
|
||
import { spawnSync } from 'node:child_process'
|
||
import { fileURLToPath } from 'node:url'
|
||
import { loadAndValidateManifest } from './manifest-v2.mjs'
|
||
|
||
const scriptDirectory = path.dirname(fileURLToPath(import.meta.url))
|
||
const pipelineDirectory = path.resolve(scriptDirectory, '..')
|
||
const workspace = path.resolve(pipelineDirectory, '..')
|
||
const manifestPath = path.join(pipelineDirectory, 'manifests', 'a01-scroll-skins-v3.json')
|
||
const reportPath = path.join(pipelineDirectory, 'generated', 'a01-scroll-skins-v3', 'quality-report.json')
|
||
const localPython = path.join(pipelineDirectory, '.venv', 'Scripts', 'python.exe')
|
||
const python = process.env.PYTHON || (fs.existsSync(localPython) ? localPython : 'python')
|
||
|
||
await loadAndValidateManifest(manifestPath, workspace)
|
||
const result = spawnSync(
|
||
python,
|
||
[path.join(scriptDirectory, 'verify-assets.py'), manifestPath, '--workspace', workspace, '--report', reportPath],
|
||
{ cwd: workspace, encoding: 'utf8', stdio: 'inherit' }
|
||
)
|
||
if (result.error) throw new Error(`无法启动 Python(${python}):${result.error.message}`)
|
||
if (result.status !== 0) process.exit(result.status ?? 1)
|