SpencerCDixon/redux-cli

View on GitHub
src/tasks/git-pull.js

Summary

Maintainability
A
0 mins
Test Coverage
import Task from '../models/task';
import denodeify from 'denodeify';

const exec = denodeify(require('child_process').exec);

export default class extends Task {
  constructor(environment) {
    super(environment);
  }

  run(gitUrl) {
    const ui = this.ui;
    ui.startProgress(`Fetching ${gitUrl} from github.`);

    return exec(`git pull ${gitUrl}`, {
      silent: true
    }).then((err, stdout, stderr) => {
      ui.stopProgress();

      if (err) {
        ui.writeError(
          'Could not git-pull repository... please try again. Make sure you have internet access'
        );
        ui.writeError(`Error code: ${err}`);
        ui.writeError(stdout);
        ui.writeError(stderr);
        process.exit(1);
      }
      ui.writeInfo('pulled down repo');
      Promise.resolve();
    });
  }
}