mirror of
https://github.com/facebook/docusaurus.git
synced 2025-05-18 03:26:57 +02:00
Move Docusaurus 1 files into directory (#966)
* Move Docusaurus 1 into v1 directory * Update Circle CI commands for new v1 dir * Remove OC * Fix tests
This commit is contained in:
parent
9d4a5d5359
commit
f2927a9fc4
291 changed files with 7591 additions and 6532 deletions
251
v1/lib/copy-examples.js
Executable file
251
v1/lib/copy-examples.js
Executable file
|
@ -0,0 +1,251 @@
|
|||
#!/usr/bin/env node
|
||||
|
||||
/**
|
||||
* Copyright (c) 2017-present, Facebook, Inc.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
const chalk = require('chalk');
|
||||
const commander = require('commander');
|
||||
const fs = require('fs-extra');
|
||||
const glob = require('glob');
|
||||
const path = require('path');
|
||||
|
||||
const CWD = process.cwd();
|
||||
|
||||
let feature;
|
||||
|
||||
commander
|
||||
.arguments('[feature]')
|
||||
.action(feat => {
|
||||
feature = feat;
|
||||
})
|
||||
.parse(process.argv);
|
||||
|
||||
// add scripts to package.json file
|
||||
if (fs.existsSync(`${CWD}/package.json`)) {
|
||||
const packageContent = JSON.parse(
|
||||
fs.readFileSync(`${CWD}/package.json`, 'utf8'),
|
||||
);
|
||||
if (!packageContent.scripts) {
|
||||
packageContent.scripts = {};
|
||||
}
|
||||
packageContent.scripts.start = 'docusaurus-start';
|
||||
packageContent.scripts.build = 'docusaurus-build';
|
||||
packageContent.scripts['publish-gh-pages'] = 'docusaurus-publish';
|
||||
packageContent.scripts.examples = 'docusaurus-examples';
|
||||
packageContent.scripts['write-translations'] =
|
||||
'docusaurus-write-translations';
|
||||
packageContent.scripts.version = 'docusaurus-version';
|
||||
packageContent.scripts['rename-version'] = 'docusaurus-rename-version';
|
||||
fs.writeFileSync(
|
||||
`${CWD}/package.json`,
|
||||
`${JSON.stringify(packageContent, null, 2)}\n`,
|
||||
);
|
||||
console.log(
|
||||
`${chalk.green('Wrote docusaurus scripts to package.json file.')}\n`,
|
||||
);
|
||||
}
|
||||
|
||||
const outerFolder = path.basename(path.dirname(CWD));
|
||||
|
||||
let docsCreated = false;
|
||||
let blogCreated = false;
|
||||
let exampleSiteCreated = false;
|
||||
|
||||
// handles cases where feature is "translations", "versions" or neither/not present
|
||||
if (feature === 'translations') {
|
||||
// copy files for translations
|
||||
const folder = path.join(__dirname, '..', 'examples', 'translations');
|
||||
if (fs.existsSync(`${CWD}/../crowdin.yaml`)) {
|
||||
console.log(
|
||||
`${chalk.yellow('crowdin.yaml already exists')} in ${chalk.yellow(
|
||||
`${outerFolder}/`,
|
||||
)}. Rename or remove the file to regenerate an example version.\n`,
|
||||
);
|
||||
} else {
|
||||
fs.copySync(`${folder}/crowdin.yaml`, `${CWD}/../crowdin.yaml`);
|
||||
exampleSiteCreated = true;
|
||||
}
|
||||
const files = glob.sync(`${folder}/**/*`);
|
||||
files.forEach(file => {
|
||||
if (fs.lstatSync(file).isDirectory()) {
|
||||
return;
|
||||
}
|
||||
if (path.basename(file) === 'crowdin.yaml') {
|
||||
return;
|
||||
}
|
||||
const filePath = path.resolve(file).split(path.resolve(folder))[1];
|
||||
try {
|
||||
fs.copySync(file, CWD + filePath, {
|
||||
overwrite: false,
|
||||
errorOnExist: true,
|
||||
});
|
||||
exampleSiteCreated = true;
|
||||
} catch (e) {
|
||||
console.log(
|
||||
`${chalk.yellow(
|
||||
`${path.basename(filePath)} already exists`,
|
||||
)} in ${chalk.yellow(
|
||||
`website${filePath.split(path.basename(filePath))[0]}`,
|
||||
)}. Rename or remove the file to regenerate an example version.\n`,
|
||||
);
|
||||
}
|
||||
});
|
||||
} else if (feature === 'versions') {
|
||||
// copy files for versions
|
||||
const folder = path.join(__dirname, '..', 'examples', 'versions');
|
||||
const files = glob.sync(`${folder}/**/*`);
|
||||
files.forEach(file => {
|
||||
if (fs.lstatSync(file).isDirectory()) {
|
||||
return;
|
||||
}
|
||||
const filePath = path.resolve(file).split(path.resolve(folder))[1];
|
||||
try {
|
||||
fs.copySync(file, CWD + filePath, {
|
||||
overwrite: false,
|
||||
errorOnExist: true,
|
||||
});
|
||||
exampleSiteCreated = true;
|
||||
} catch (e) {
|
||||
console.log(
|
||||
`${chalk.yellow(
|
||||
`${path.basename(filePath)} already exists`,
|
||||
)} in ${chalk.yellow(
|
||||
`website${filePath.split(path.basename(filePath))[0]}`,
|
||||
)}. Rename or remove the file to regenerate an example version.\n`,
|
||||
);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
const folder = path.join(__dirname, '..', 'examples', 'basics');
|
||||
// copy docs examples
|
||||
if (fs.existsSync(`${CWD}/../docs-examples-from-docusaurus`)) {
|
||||
console.log(
|
||||
`- ${chalk.green(
|
||||
'docs-examples-from-docusaurus',
|
||||
)} already exists in ${chalk.blue(outerFolder)}.`,
|
||||
);
|
||||
} else {
|
||||
fs.copySync(
|
||||
`${folder}/docs-examples-from-docusaurus`,
|
||||
`${CWD}/../docs-examples-from-docusaurus`,
|
||||
);
|
||||
exampleSiteCreated = true;
|
||||
docsCreated = true;
|
||||
}
|
||||
// copy blog examples
|
||||
if (fs.existsSync(`${CWD}/blog-examples-from-docusaurus`)) {
|
||||
console.log(
|
||||
`- ${chalk.green(
|
||||
'blog-examples-from-docusaurus',
|
||||
)} already exists in ${chalk.blue(`${outerFolder}/website`)}.`,
|
||||
);
|
||||
} else {
|
||||
fs.copySync(
|
||||
path.join(folder, 'blog-examples-from-docusaurus'),
|
||||
path.join(CWD, 'blog-examples-from-docusaurus'),
|
||||
);
|
||||
exampleSiteCreated = true;
|
||||
blogCreated = true;
|
||||
}
|
||||
|
||||
const copyFileToProjectFolder = (fileNameFrom, fileNameTo) => {
|
||||
const copiedFileName = fileNameTo || fileNameFrom;
|
||||
const src = path.join(folder, fileNameFrom);
|
||||
const dest = path.join(CWD, '..', copiedFileName);
|
||||
if (fs.existsSync(dest)) {
|
||||
console.log(
|
||||
`- ${chalk.green(copiedFileName)} already exists in ${chalk.blue(
|
||||
outerFolder,
|
||||
)}.`,
|
||||
);
|
||||
} else {
|
||||
fs.copySync(src, dest);
|
||||
}
|
||||
};
|
||||
|
||||
// copy .gitignore file
|
||||
copyFileToProjectFolder('gitignore', '.gitignore');
|
||||
|
||||
// copy Dockerfile file
|
||||
copyFileToProjectFolder('Dockerfile');
|
||||
|
||||
// copy docker-compose.yml file
|
||||
copyFileToProjectFolder('docker-compose.yml');
|
||||
|
||||
// copy .dockerignore file
|
||||
copyFileToProjectFolder('dockerignore', '.dockerignore');
|
||||
|
||||
// copy other files
|
||||
const files = glob.sync(`${folder}/**/*`);
|
||||
files.forEach(file => {
|
||||
if (fs.lstatSync(file).isDirectory()) {
|
||||
return;
|
||||
}
|
||||
const containingFolder = path.basename(path.dirname(file));
|
||||
if (
|
||||
path.basename(file) === 'gitignore' ||
|
||||
path.basename(file) === 'Dockerfile' ||
|
||||
path.basename(file) === 'docker-compose.yml' ||
|
||||
path.basename(file) === 'dockerignore' ||
|
||||
containingFolder === 'blog-examples-from-docusaurus' ||
|
||||
containingFolder === 'docs-examples-from-docusaurus'
|
||||
) {
|
||||
return;
|
||||
}
|
||||
const filePath = path.resolve(file).split(path.resolve(folder))[1];
|
||||
try {
|
||||
fs.copySync(file, CWD + filePath, {
|
||||
overwrite: false,
|
||||
errorOnExist: true,
|
||||
});
|
||||
exampleSiteCreated = true;
|
||||
} catch (e) {
|
||||
console.log(
|
||||
`- ${chalk.green(
|
||||
`${path.basename(filePath)}`,
|
||||
)} already exists in ${chalk.blue(
|
||||
`${outerFolder}/website${filePath.split(path.basename(filePath))[0]}`,
|
||||
)}.`,
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
if (exampleSiteCreated) {
|
||||
try {
|
||||
const tree = require('tree-node-cli');
|
||||
const dirString = tree(path.join(CWD, '..'), {
|
||||
exclude: [
|
||||
/node_modules/, // npm
|
||||
/vendor/, // composer
|
||||
],
|
||||
});
|
||||
console.log(dirString);
|
||||
} catch (error) {
|
||||
console.warn(`Error printing directory: ${error}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (docsCreated) {
|
||||
console.log(
|
||||
`Rename ${chalk.yellow(
|
||||
`${outerFolder}/docs-examples-from-docusaurus`,
|
||||
)} to ${chalk.yellow(
|
||||
`${outerFolder}/docs`,
|
||||
)} to see the example docs on your site.\n`,
|
||||
);
|
||||
}
|
||||
|
||||
if (blogCreated) {
|
||||
console.log(
|
||||
`Rename ${chalk.yellow(
|
||||
`${outerFolder}/website/blog-examples-from-docusaurus`,
|
||||
)} to ${chalk.yellow(
|
||||
`${outerFolder}/website/blog`,
|
||||
)} to see the example blog posts on your site.\n`,
|
||||
);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue