mirror of https://github.com/ColorlibHQ/AdminLTE
				
				
				
			
		
			
				
	
	
		
			60 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
#!/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()
 |