| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- // Helper script to create empty Hugo-module directories for Docsy dependencies
- // listed in `go.mod`. This is necessary for projects not using Hugo modules. For
- // details, see
- // https://www.docsy.dev/docs/get-started/other-options/#docsy-npm-install-side-effect
- const fs = require('fs');
- const path = require('path');
- if (process.env.DOCSY_MKDIR_HUGO_MOD_SKIP) {
- console.log("DOCSY_MKDIR_HUGO_MOD_SKIP is set. Skipping directory creation.");
- process.exit(0);
- }
- const modulePathPrefix = process.argv[2] || '..';
- console.log(
- `Creating empty directories under MODULE_PATH_PREFIX: ${modulePathPrefix}
- which resolves to: ${path.resolve(modulePathPrefix)}\n`
- );
- // Extract module paths from `go.mod`, assuming the dependencies appear in the form:
- //
- // require (
- // github.com/...
- // ...
- // )
- function extractModulePaths() {
- const goModPath = path.join(__dirname, '..', 'go.mod');
- let directories = [];
- try {
- const goModContent = fs.readFileSync(goModPath, 'utf8');
- const lines = goModContent.split('\n');
- lines.forEach((line) => {
- line = line.trim();
- if (!line.startsWith('github.com')) return;
- const modulePath = line.split(' ')[0];
- directories.push(modulePath);
- });
- } catch (error) {
- console.error(`Error reading go.mod file: ${error.message}`);
- process.exit(1);
- }
- return directories;
- }
- function createDirectory(targetPath) {
- if (!fs.existsSync(targetPath)) {
- console.log(`+ Creating directory ${targetPath}`);
- fs.mkdirSync(targetPath, { recursive: true });
- } else {
- console.log(`> Directory already exists: ${targetPath}`);
- }
- }
- const directories = extractModulePaths();
- directories.forEach((dir) => {
- const targetPath = path.join(modulePathPrefix, dir);
- createDirectory(targetPath);
- });
|