Skip to content

Instantly share code, notes, and snippets.

@mgrybyk
Last active September 10, 2019 14:06
Show Gist options
  • Save mgrybyk/d8b8e91fe7b480b1e6e7a6fe27e6f545 to your computer and use it in GitHub Desktop.
Save mgrybyk/d8b8e91fe7b480b1e6e7a6fe27e6f545 to your computer and use it in GitHub Desktop.
copy wdio packages
/**
* Copies webdriverio packages
*
* 1. Create file in `webdriverio` project root folder and run it;
* 2. Specify path to your working project;
* 3. Run script `node copy-packages.js`
*/
const path = require('path')
const fse = require('fs-extra')
/**
* SPECIFY path to your working project root!!!
*/
const PATH_TO_PROJECT = '___'
const COPY_PACKAGES = [
'wdio-cli',
'wdio-config',
'wdio-local-runner',
'wdio-logger',
'wdio-mocha-framework',
'wdio-cucumber-framework',
'wdio-repl',
'wdio-reporter',
'wdio-runner',
'wdio-sync',
'wdio-utils',
'webdriver',
'webdriverio',
'wdio-protocols', 'devtools'
]
const IGNORED_DIRS = ['node_modules', 'tests', 'src']
COPY_PACKAGES.forEach(packageName => {
const targetPackageName = packageName.startsWith('wdio-') ? `@wdio/${packageName.substr(5)}` : packageName
console.log('COPYING', packageName, '->', targetPackageName)
const targetPackageDir = path.join(PATH_TO_PROJECT, 'node_modules', targetPackageName)
const sourcePackageDir = path.join('packages', packageName)
fse.removeSync(targetPackageDir)
fse.ensureDirSync(targetPackageDir)
const sourceFiles = fse.readdirSync(sourcePackageDir)
sourceFiles
.filter(f => !f.startsWith('.') && !IGNORED_DIRS.some(n => f === n))
.sort(a => a.includes('.') ? 1 : 0)
.forEach(fileName => {
console.log(`\t${fileName}`)
fse.copySync(path.join(sourcePackageDir, fileName), path.join(targetPackageDir, fileName))
})
console.log('')
})
console.log('THE END')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment