Initial commit
Deploy / validate-dispatch (push) Successful in 43s
Deploy / scheduled-rebuild-dev (push) Skipped
Deploy / scheduled-rebuild-master (push) Skipped
Deploy / rollback-dev (push) Skipped
Deploy / rollback-master (push) Skipped
Deploy / changes (push) Successful in 13s
Deploy / secret-scan (push) Successful in 9s
Deploy / app-quality (push) Successful in 11m21s
Deploy / security-deps (push) Successful in 14s
Deploy / context (push) Failing after 1s
Deploy / app-image (push) Skipped
Deploy / deploy-dev (push) Skipped
Deploy / deploy-master (push) Skipped
Deploy / validate-dispatch (push) Successful in 43s
Deploy / scheduled-rebuild-dev (push) Skipped
Deploy / scheduled-rebuild-master (push) Skipped
Deploy / rollback-dev (push) Skipped
Deploy / rollback-master (push) Skipped
Deploy / changes (push) Successful in 13s
Deploy / secret-scan (push) Successful in 9s
Deploy / app-quality (push) Successful in 11m21s
Deploy / security-deps (push) Successful in 14s
Deploy / context (push) Failing after 1s
Deploy / app-image (push) Skipped
Deploy / deploy-dev (push) Skipped
Deploy / deploy-master (push) Skipped
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
import fs from "node:fs";
|
||||
import path from "node:path";
|
||||
|
||||
const DOWNLOADS_DIR = path.resolve(import.meta.dirname, "../public/downloads");
|
||||
const PDF_METADATA_PATTERN =
|
||||
/\/(?:Title|Author|Subject|Keywords|Creator|CreationDate|ModDate)\s*\(|<xmp:(?:CreatorTool|CreateDate|ModifyDate)>|<dc:(?:creator|title)>|<pdf:Keywords>/i;
|
||||
|
||||
function collectPdfs(directory) {
|
||||
if (!fs.existsSync(directory)) return [];
|
||||
|
||||
return fs
|
||||
.readdirSync(directory, { withFileTypes: true })
|
||||
.filter((entry) => entry.isFile() && entry.name.toLowerCase().endsWith(".pdf"))
|
||||
.map((entry) => path.join(directory, entry.name));
|
||||
}
|
||||
|
||||
const files = collectPdfs(DOWNLOADS_DIR);
|
||||
const filesWithMetadata = files.filter((file) =>
|
||||
PDF_METADATA_PATTERN.test(fs.readFileSync(file, "latin1")),
|
||||
);
|
||||
|
||||
for (const file of filesWithMetadata) {
|
||||
console.error(`[downloads:check-metadata] PDF metadata found: ${file}`);
|
||||
}
|
||||
|
||||
if (filesWithMetadata.length > 0) {
|
||||
process.exitCode = 1;
|
||||
} else {
|
||||
console.log(`[downloads:check-metadata] ${files.length} PDFs checked; no document metadata found.`);
|
||||
}
|
||||
Reference in New Issue
Block a user