#!/usr/bin/env node
/*
 * Licensed to Cloudkick, Inc ('Cloudkick') under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * Cloudkick licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

var path = require('path');

var logmagic = require('logmagic');

var cwd = process.cwd();
var argv = process.argv;
var whiskey = require('../index');
var run = require('../lib/run');
var argvLen = argv.length;

if (argvLen >= 3) {
  if (argv[2].indexOf('-') !== 0) {
    argv.splice(2, 0, '--tests');
  }
}

logmagic.route('whiskey.process_runner.*', logmagic.INFO, 'process_runner');
whiskey.run(cwd, argv);

process.on('uncaughtException', function(err) {
  console.log(err.message);

  if (err.stack) {
    console.log(err.stack);
  }

  run.exitCode = 1;

  if (run.processRunner) {
    run.processRunner.stop(process.exit.bind(null, 1));
  }
  else {
    process.exit(1);
  }
});
