From fa969b9dd99d18a3c5f77300a79a9c923ce280ce Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Tue, 26 Mar 2024 15:20:48 -0300 Subject: search, upd8: write index into wikiCachePath --- src/data/things/search.js | 18 ++++++++++++++---- src/upd8.js | 33 +++++++++++++++++++++------------ 2 files changed, 35 insertions(+), 16 deletions(-) diff --git a/src/data/things/search.js b/src/data/things/search.js index ad641c38..ed65cb6b 100644 --- a/src/data/things/search.js +++ b/src/data/things/search.js @@ -1,15 +1,20 @@ -#!/usr/bin/env node - 'use strict'; import {writeFile} from 'node:fs/promises'; +import * as path from 'node:path'; import FlexSearch from 'flexsearch'; import {logError, logInfo, logWarn} from '#cli'; import Thing from '#thing'; -export async function writeSearchIndex(searchIndexPath, wikiData) { +export async function writeSearchIndex({ + wikiCachePath, + wikiData, +}) { + if (!wikiCachePath) { + throw new Error(`Expected wikiCachePath to write into`); + } // Basic flow is: // 1. Define schema for type @@ -81,5 +86,10 @@ export async function writeSearchIndex(searchIndexPath, wikiData) { }); })); - await writeFile(searchIndexPath, JSON.stringify(searchData)); + const outputFile = + path.join(wikiCachePath, 'search-index.json'); + + await writeFile(outputFile, JSON.stringify(searchData)); + + logInfo`Search index successfully written.`; } diff --git a/src/upd8.js b/src/upd8.js index 17fd7d7c..473a9514 100755 --- a/src/upd8.js +++ b/src/upd8.js @@ -769,14 +769,23 @@ async function main() { buildConfig: 'webRoutes', }); - fallbackStep('buildSearchIndex', { - default: 'perform', - buildConfig: 'search', - cli: { - flag: 'skip-search', - negate: true, - }, - }); + if (wikiCachePath) { + fallbackStep('buildSearchIndex', { + default: 'perform', + buildConfig: 'search', + cli: { + flag: 'skip-search', + negate: true, + }, + }); + } else { + logInfo`No wiki cache provided, so not writing search index.`; + + Object.assign(stepStatusSummary.buildSearchIndex, { + status: STATUS_NOT_APPLICABLE, + annotation: `no wiki cache to write into`, + }); + } fallbackStep('verifyImagePaths', { default: 'perform', @@ -1480,10 +1489,10 @@ async function main() { timeStart: Date.now(), }); - const searchIndexPath = path.join(mediaPath, "search_index.json"); - logInfo`Search index: ${searchIndexPath}`; - - await writeSearchIndex(searchIndexPath, wikiData); + await writeSearchIndex({ + wikiCachePath, + wikiData, + }); Object.assign(stepStatusSummary.buildSearchIndex, { status: STATUS_DONE_CLEAN, -- cgit 1.3.0-6-gf8a5