88 lines
3.1 KiB
TypeScript
88 lines
3.1 KiB
TypeScript
import * as path from 'path'
|
|
import * as pMap from 'p-map'
|
|
import { CONFIG_DEFAULT } from '@plastichub/osr-cli-commons'
|
|
import { resolve } from '@plastichub/osr-cli-commons/fs'
|
|
import { files } from '@plastichub/osr-cli-commons/glob'
|
|
|
|
import { sync as cp } from '@plastichub/fs/copy'
|
|
import { sync as exists } from '@plastichub/fs/exists'
|
|
import { sync as rm } from '@plastichub/fs/remove'
|
|
import { sync as read } from '@plastichub/fs/read'
|
|
import { sync as write } from '@plastichub/fs/write'
|
|
|
|
import { logger as _logger } from '@plastichub/core/debug'
|
|
import * as ExifReader from 'exifreader'
|
|
import { Logger, TTransportLogger, ILogObject } from 'tslog'
|
|
import { createStream } from "rotating-file-stream"
|
|
import { sanitize } from '@plastichub/osr-i18n/_cli'
|
|
import { translateText } from '@plastichub/osr-i18n/lib/translate'
|
|
import { IOptions as IOptionsI18n } from '@plastichub/osr-i18n/types'
|
|
import { translate } from '@plastichub/osr-i18n/lib/translate'
|
|
import { resize, getResizePatterns, format, getFormats, meta } from '@plastichub/osr-media/lib/media/images'
|
|
|
|
import {
|
|
ENABLED_PRODUCTS, I18N_SOURCE_LANGUAGE, I18N_STORE,
|
|
LANGUAGES,
|
|
OSRL_ENV, OSRL_LANG_FLAVOR,
|
|
OSRL_MODULE_NAME, OSR_ROOT, PRODUCTS_TARGET_SRC, PRODUCT_CONFIG, PRODUCT_HUGO_TEMPLATE, OSRL_PRODUCT_PROFILE, PRODUCT_ROOT, PRODUCT_DIR,
|
|
OSRL_ENVIRONMENT,
|
|
RETAIL_LOG_LEVEL_I18N_PRODUCT_ASSETS,
|
|
TASK_CONFIG_LOG_DIRECTORY
|
|
} from './config'
|
|
|
|
|
|
import { GalleryImage } from './images'
|
|
|
|
const debug = false
|
|
const verbose = true
|
|
|
|
const logger = _logger('ph-site')
|
|
const IMAGES_GLOB = '*.+(JPG|jpg|png|PNG|gif)'
|
|
|
|
const _convertProductMedia = true
|
|
const _translateProductAssets = true
|
|
const _populateProductDefaults = true
|
|
|
|
|
|
export const createSubLogger = (root: Logger, level: string, name: string): Logger => {
|
|
|
|
const ret = root.getChildLogger({
|
|
name,
|
|
type: "pretty",
|
|
displayInstanceName: true,
|
|
displayFilePath: 'hidden',
|
|
instanceName: name,
|
|
displayFunctionName: true,
|
|
displayRequestId: true,
|
|
displayLogLevel: true,
|
|
colorizePrettyLogs: true,
|
|
hostname: "osr-cli",
|
|
displayLoggerName: true,
|
|
displayTypes: false,
|
|
prefix: ["\n\t "],
|
|
})
|
|
|
|
const logFile = path.resolve(resolve(`${TASK_CONFIG_LOG_DIRECTORY}/${name}.log`))
|
|
const stream = createStream(logFile,
|
|
{
|
|
size: "10M", // rotate every 10 MegaBytes written
|
|
interval: "1d", // rotate daily
|
|
compress: "gzip", // compress rotated files
|
|
});
|
|
|
|
const transport = {
|
|
minLevel: level,
|
|
transportLogger: {
|
|
info: (logObject: ILogObject) => {
|
|
stream.write(JSON.stringify(logObject, null, 2) + "\n");
|
|
}
|
|
}
|
|
}
|
|
logger.attachTransport(transport.transportLogger as any, level as any)
|
|
return logger
|
|
}
|
|
|
|
export const writeTaskConfig = (taskName, config: any) => {
|
|
const file = path.resolve(resolve(`${TASK_CONFIG_LOG_DIRECTORY}/${taskName}.json`))
|
|
write(file, JSON.stringify(config, null, 2))
|
|
} |