%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /www/specpages-backup/node_modules/hexo/lib/plugins/console/
Upload File :
Create Path :
Current File : /www/specpages-backup/node_modules/hexo/lib/plugins/console/deploy.js

'use strict';

const { exists } = require('hexo-fs');
const { underline, magenta } = require('picocolors');

function deployConsole(args) {
  let config = this.config.deploy;
  const deployers = this.extend.deployer.list();

  if (!config) {
    let help = '';

    help += 'You should configure deployment settings in _config.yml first!\n\n';
    help += 'Available deployer plugins:\n';
    help += `  ${Object.keys(deployers).join(', ')}\n\n`;
    help += `For more help, you can check the online docs: ${underline('https://hexo.io/')}`;

    console.log(help);
    return;
  }

  const generateArgs = {...args};
  generateArgs.d = false;
  generateArgs.deploy = false;

  let promise;

  if (args.g || args.generate) {
    promise = this.call('generate', args);
  } else {
    promise = exists(this.public_dir).then(exist => {
      if (!exist) return this.call('generate', args);
    });
  }

  return promise.then(() => {
    this.emit('deployBefore');

    if (!Array.isArray(config)) config = [config];
    return config;
  }).each(item => {
    if (!item.type) return;

    const { type } = item;

    if (!deployers[type]) {
      this.log.error('Deployer not found: %s', magenta(type));
      return;
    }

    this.log.info('Deploying: %s', magenta(type));

    return Reflect.apply(deployers[type], this, [{ ...item, ...args }]).then(() => {
      this.log.info('Deploy done: %s', magenta(type));
    });
  }).then(() => {
    this.emit('deployAfter');
  });
}

module.exports = deployConsole;

Zerion Mini Shell 1.0