AdminLTE/build/npm/Publish.js

60 lines
1.2 KiB
JavaScript
Raw Normal View History

2020-06-02 08:39:15 +00:00
#!/usr/bin/env node
2020-05-30 13:44:20 +00:00
'use strict'
2020-05-30 16:27:41 +00:00
const path = require('path')
2020-05-30 13:44:20 +00:00
const fse = require('fs-extra')
2020-05-30 16:27:41 +00:00
const Plugins = require('./Plugins')
2018-03-17 17:07:55 +00:00
class Publish {
constructor() {
this.options = {
verbose: false
}
this.getArguments()
}
getArguments() {
if (process.argv.length > 2) {
2020-05-30 13:44:20 +00:00
const arg = process.argv[2]
2018-03-17 17:07:55 +00:00
switch (arg) {
case '-v':
case '--verbose':
this.options.verbose = true
break
default:
throw new Error(`Unknown option ${arg}`)
}
}
}
run() {
// Publish files
2020-05-30 13:44:20 +00:00
Plugins.forEach(module => {
2020-05-30 16:27:41 +00:00
const fseOptions = {
// Skip copying dot files
filter(src) {
return !path.basename(src).startsWith('.')
}
}
try {
2019-10-03 11:51:18 +00:00
if (fse.existsSync(module.from)) {
2020-05-30 16:27:41 +00:00
fse.copySync(module.from, module.to, fseOptions)
2019-10-03 11:51:18 +00:00
} else {
2020-05-30 16:27:41 +00:00
fse.copySync(module.from.replace('node_modules/', '../'), module.to, fseOptions)
2019-10-03 11:51:18 +00:00
}
if (this.options.verbose) {
2018-05-05 21:47:50 +00:00
console.log(`Copied ${module.from} to ${module.to}`)
2018-03-17 17:07:55 +00:00
}
2020-05-30 13:44:20 +00:00
} catch (error) {
console.error(`Error: ${error}`)
}
2018-03-17 17:07:55 +00:00
})
}
}
(new Publish()).run()