Publish.js 899 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. const Plugins = require('./Plugins')
  2. const copydir = require('copy-dir')
  3. class Publish {
  4. constructor() {
  5. this.options = {
  6. verbose: false
  7. }
  8. this.getArguments()
  9. }
  10. getArguments() {
  11. if (process.argv.length > 2) {
  12. let arg = process.argv[2]
  13. switch (arg) {
  14. case '-v':
  15. case '--verbose':
  16. this.options.verbose = true
  17. break
  18. default:
  19. throw new Error(`Unknown option ${arg}`)
  20. }
  21. }
  22. }
  23. run() {
  24. // Publish files
  25. Plugins.forEach((module) => {
  26. copydir(module.from, module.to, (stat, filepath, filename) => {
  27. if (this.options.verbose) {
  28. console.log(`Copied ${filename} from ${module.from} to ${module.to}`)
  29. }
  30. return true
  31. }, error => {
  32. if (error) {
  33. console.error(`Error: ${error}`)
  34. }
  35. })
  36. })
  37. }
  38. }
  39. (new Publish()).run()