_ = require('lodash') Mixpanel = require('mixpanel') Promise = require('bluebird') resin = require('resin-sdk') packageJSON = require('../package.json') exports.getLoggerInstance = _.memoize -> return resin.models.config.getMixpanelToken().then(Mixpanel.init) exports.trackCommand = (capitanoCommand) -> return Promise.props resinUrl: resin.settings.get('resinUrl') username: resin.auth.whoami() mixpanel: exports.getLoggerInstance() .then (data) -> data.mixpanel.track "[CLI] #{capitanoCommand.command}", distinct_id: data.username argv: process.argv.join(' ') version: packageJSON.version node: process.version arch: process.arch resinUrl: data.resinUrl platform: process.platform command: capitanoCommand