| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 | #!/usr/bin/env node'use strict'const path = require('path')const fse = require('fs-extra')const Plugins = require('./Plugins')class Publish {  constructor() {    this.options = {      verbose: false    }    this.getArguments()  }  getArguments() {    if (process.argv.length > 2) {      const arg = process.argv[2]      switch (arg) {        case '-v':        case '--verbose':          this.options.verbose = true          break        default:          throw new Error(`Unknown option ${arg}`)      }    }  }  run() {    // Publish files    Plugins.forEach(module => {      const fseOptions = {        // Skip copying dot files        filter(src) {          return !path.basename(src).startsWith('.')        }      }      try {        if (fse.existsSync(module.from)) {          fse.copySync(module.from, module.to, fseOptions)        } else {          fse.copySync(module.from.replace('node_modules/', '../'), module.to, fseOptions)        }        if (this.options.verbose) {          console.log(`Copied ${module.from} to ${module.to}`)        }      } catch (error) {        console.error(`Error: ${error}`)      }    })  }}(new Publish()).run()
 |