| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- const path = require('path')
- const globby = require('globby')
- const exec = require('./lib/shell')
- const workspaceUtil = require('./lib/workspace-util')
- let rootDir = path.resolve(__dirname, '..')
- let exDir = path.join(rootDir, 'example-projects')
- let projName = process.argv[2]
- let runCmd = process.argv[3]
- if (!projName) {
- console.error('Must specify an example-project name')
- process.exit(1)
- }
- let projDir = path.join(exDir, projName)
- let fcPkgRootDir = path.join(projDir, 'node_modules', '@fullcalendar')
- function resetFcPkgs(pkgNameToLocationHash) {
- let fcPkgShortNames = globby.sync('*', { cwd: fcPkgRootDir, onlyFiles: false })
- for (let fcPkgShortName of fcPkgShortNames) {
- exec.sync(
- [ 'rm', '-rf', fcPkgShortName ],
- { cwd: fcPkgRootDir, exitOnError: true }
- )
- if (pkgNameToLocationHash) {
- let fcPkgName = `@fullcalendar/${fcPkgShortName}`
- let fcPkgLocation = pkgNameToLocationHash[fcPkgName]
- if (!fcPkgLocation) {
- throw new Error(`Could not find location for package ${fcPkgName}`)
- }
- exec.sync(
- [ 'cp', '-r', path.join(rootDir, fcPkgLocation), fcPkgShortName ],
- { cwd: fcPkgRootDir, exitOnError: true }
- )
- }
- }
- }
- resetFcPkgs() // deletes all @fullcalendar/* packages
- exec.sync(
- 'npm install',
- { cwd: projDir, exitOnError: true, live: true, env: {
- ...process.env,
- NODE_OPTIONS: '' // prevent yarn from injecting pnp script
- } }
- )
- resetFcPkgs(workspaceUtil.getPkgNameToLocationHash())
- if (runCmd) {
- exec.sync(
- [ 'npm', 'run', runCmd ],
- { cwd: projDir, exitOnError: true, live: true, env: {
- ...process.env,
- NODE_OPTIONS: '' // prevent yarn from injecting pnp script
- } }
- )
- }
|