aaif-goose--goose
8a21a212f8
Deploy Documentation / deploy (push) Has been cancelled
Canary / build-cli (push) Has been skipped
Canary / Upload Install Script (push) Has been skipped
Canary / bundle-desktop (push) Has been skipped
Canary / bundle-desktop-intel (push) Has been skipped
Canary / bundle-desktop-linux (push) Has been skipped
Canary / bundle-desktop-windows (push) Has been skipped
Canary / bundle-desktop-windows-cuda (push) Has been skipped
Canary / Release (push) Has been skipped
Cargo Deny / deny (push) Has been skipped
Unused Dependencies / machete (push) Has been skipped
Canary / Prepare Version (push) Failing after 1s
Live Provider Tests / check-fork (push) Failing after 0s
Create Minor Release PR / check-version-bump-pr (push) Has been skipped
Publish Ask AI Bot Docker Image / docker (push) Failing after 1s
Live Provider Tests / changes (push) Has been skipped
Scorecard supply-chain security / Scorecard analysis (push) Has been skipped
Publish Docker Image / docker (push) Failing after 1s
CI / changes (push) Failing after 8s
Create Minor Release PR / release (push) Has been skipped
Live Provider Tests / Smoke Tests (push) Has been cancelled
Live Provider Tests / Smoke Tests (Code Execution) (push) Has been cancelled
Live Provider Tests / Compaction Tests (push) Has been cancelled
CI / Build Rust Project on Windows (push) Has been cancelled
Live Provider Tests / Build Binary (push) Has been cancelled
CI / Lint Rust Code (push) Has been cancelled
CI / Check Generated Schemas are Up-to-Date (push) Has been cancelled
CI / Test and Lint Electron Desktop App (push) Has been cancelled
CI / Check Rust Code Format (push) Has been cancelled
CI / Build and Test Rust Project (push) Has been cancelled
CI / Check MSRV (push) Has been cancelled
47 行
1.2 KiB
JavaScript
47 行
1.2 KiB
JavaScript
#!/usr/bin/env node
|
|
/**
|
|
* Cross-platform i18n check script.
|
|
* Extracts messages to a temp file and compares against the committed file
|
|
* to ensure src/i18n/messages/en.json is up to date.
|
|
*/
|
|
const fs = require('fs');
|
|
const os = require('os');
|
|
const path = require('path');
|
|
const { execFileSync } = require('child_process');
|
|
|
|
const projectDir = path.join(__dirname, '..');
|
|
const formatjs = require.resolve('@formatjs/cli/bin/formatjs');
|
|
const enFile = path.join(projectDir, 'src', 'i18n', 'messages', 'en.json');
|
|
const tmpFile = path.join(os.tmpdir(), 'en.i18n-check.json');
|
|
|
|
execFileSync(
|
|
process.execPath,
|
|
[
|
|
formatjs,
|
|
'extract',
|
|
'src/**/*.{ts,tsx}',
|
|
'--ignore',
|
|
'**/*.d.ts',
|
|
'--out-file',
|
|
tmpFile,
|
|
'--flatten',
|
|
],
|
|
{ stdio: 'inherit', cwd: projectDir }
|
|
);
|
|
|
|
const committed = fs.readFileSync(enFile, 'utf8');
|
|
const extracted = fs.readFileSync(tmpFile, 'utf8');
|
|
|
|
try {
|
|
fs.unlinkSync(tmpFile);
|
|
} catch (_) {
|
|
// ignore cleanup errors
|
|
}
|
|
|
|
if (JSON.stringify(JSON.parse(committed)) !== JSON.stringify(JSON.parse(extracted))) {
|
|
console.error(
|
|
'Error: src/i18n/messages/en.json is out of date. Run pnpm i18n:extract to update it.'
|
|
);
|
|
process.exit(1);
|
|
}
|