@fontoxml/fontoxml-development-tools
Version:
Development tools for Fonto.
102 lines (86 loc) • 2.94 kB
JavaScript
import path from 'path';
/** @typedef {import('../shared/src/addBackendDockerCommands').AddBackendDockerCommandsOptions} AddBackendDockerCommandsOptions */
export default async (moduleRegistration) => {
/** @type {AddBackendDockerCommandsOptions} */
const options = {
licenseProductName: 'output',
licensesRequired: ['output'],
productLabel: 'Fonto Output',
commandPrefix: 'output',
documentationConfigurationGuide:
'https://documentation.fontoxml.com/latest/fonto-output-configuration-153fc75f5371',
documentationExecuteError:
'https://documentation.fontoxml.com/latest/fonto-output-configuration-153fc75f5371',
documentationGettingStartedGuide:
'https://documentation.fontoxml.com/latest/fonto-output-8e32fefc01b5',
defaultHttpPort: 6060,
defaultImageName: 'fonto-output',
defaultImageTag: 'latest',
manifestFileName: '.fontoxmlOutputManifest',
manifestVersionPropertyName: 'outputVersion',
instanceBuildDockerfilePath: path.join(
moduleRegistration.getPath(),
'assets',
'instanceBuild',
'Dockerfile',
),
instanceDevBuildDirectoryPath: path.join(
moduleRegistration.getPath(),
'assets',
'instanceDevBuild',
),
instanceDevBuildDockerfilePath: path.join(
moduleRegistration.getPath(),
'assets',
'instanceBuild',
'Dockerfile',
),
instanceTemplateDirectoryPath: path.join(
moduleRegistration.getPath(),
'assets',
'instanceTemplate',
),
requiredConfiguration: ['Configuration'],
temporaryDirectoryName: '.outputTmp',
temporaryBuildDirectoryName: '.outputBuildTmp',
whitelist: [
// Required.
'Configuration',
// Optional.
'nlog.config',
],
debugEnvEntries: {
Logging__LogLevel__Default: 'Trace',
},
};
const command = moduleRegistration
.registerCommand(options.commandPrefix)
.setDescription(`Provides tools for working with ${options.productLabel}.`)
.addRequiredProductLicenses(options.licensesRequired)
.setHideIfMissingRequiredProductLicenses()
.setAsHelpCommand();
if (options.commandAlias) {
command.addAlias(options.commandAlias);
}
const sharedModuleName = '@fontoxml/fontoxml-development-tools-module-shared';
// Add the docker based commands.
const addBackendDockerCommands = await moduleRegistration.getExportFromModule(
sharedModuleName,
'addBackendDockerCommands',
);
addBackendDockerCommands(moduleRegistration, command, options);
// Add the version commands.
const addBackendVersionsCommands =
await moduleRegistration.getExportFromModule(
sharedModuleName,
'addBackendVersionsCommands',
);
addBackendVersionsCommands(moduleRegistration, command, options);
// Add the download-self-contained command.
const addBackendDownloadSelfContainedCommands =
await moduleRegistration.getExportFromModule(
sharedModuleName,
'addBackendDownloadSelfContainedCommands',
);
addBackendDownloadSelfContainedCommands(moduleRegistration, command, options);
};