mirror of
https://github.com/zhigang1992/firebase-tools.git
synced 2026-05-25 18:31:37 +08:00
76 lines
2.0 KiB
JavaScript
Executable File
76 lines
2.0 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
'use strict';
|
|
|
|
var updateNotifier = require('update-notifier');
|
|
var pkg = require('../package.json');
|
|
var client = require('..');
|
|
var errorOut = require('../lib/errorOut');
|
|
var winston = require('winston');
|
|
var logger = require('../lib/logger');
|
|
var fs = require('fs');
|
|
var path = require('path');
|
|
var chalk = require('chalk');
|
|
var configstore = require('../lib/configstore');
|
|
var _ = require('lodash');
|
|
|
|
var logFilename = path.join(process.cwd(), '/firebase-debug.log');
|
|
logger.add(winston.transports.Console, {
|
|
level: process.env.DEBUG ? 'debug' : 'info',
|
|
showLevel: false,
|
|
colorize: true
|
|
}).add(winston.transports.File, {
|
|
level: 'debug',
|
|
filename: logFilename,
|
|
json: false,
|
|
formatter: function(input) {
|
|
input.message = chalk.stripColor(input.message);
|
|
return [
|
|
'[' + input.level + ']',
|
|
input.message
|
|
].join(' ');
|
|
}
|
|
});
|
|
|
|
logger.debug(_.repeat('-', 70));
|
|
logger.debug('Command: ', process.argv.join(' '));
|
|
logger.debug('Platform: ', process.platform);
|
|
logger.debug('Node Version:', process.version);
|
|
logger.debug('Time: ', new Date().toString());
|
|
logger.debug(_.repeat('-', 70));
|
|
logger.debug();
|
|
|
|
process.on('exit', function(code) {
|
|
code = process.exitCode || code;
|
|
if (code < 2 && fs.existsSync(logFilename)) {
|
|
fs.unlinkSync(logFilename);
|
|
}
|
|
|
|
if (code > 0) {
|
|
var lastError = configstore.get('lastError');
|
|
var timestamp = new Date().getTime();
|
|
if (lastError && lastError > timestamp - 120000) {
|
|
console.log();
|
|
console.log('Having trouble? Don\'t hesitate to contact', chalk.underline.yellow('support@firebase.com'));
|
|
}
|
|
configstore.set('lastError', timestamp);
|
|
}
|
|
});
|
|
require('exit-code');
|
|
|
|
process.on('uncaughtException', function(err) {
|
|
errorOut(client, err);
|
|
});
|
|
|
|
updateNotifier({pkg: pkg}).notify();
|
|
|
|
client.cli.parse(process.argv);
|
|
|
|
// determine if there are any non-option arguments. if not, display help
|
|
var args = process.argv.slice(2);
|
|
args = args.filter(function(arg) {
|
|
return arg.indexOf('-') < 0;
|
|
});
|
|
if (!args.length) {
|
|
client.cli.help();
|
|
}
|