52 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			52 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								#!/usr/bin/env node
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								'use strict';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var analytics = require('./analytics');
							 | 
						||
| 
								 | 
							
								var fs = require('fs');
							 | 
						||
| 
								 | 
							
								var path = require('path');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var eventType = process.argv[2];
							 | 
						||
| 
								 | 
							
								var actionCategory = process.argv[3];
							 | 
						||
| 
								 | 
							
								var actionName = process.argv[4];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if (!analytics[actionCategory + 'Start']) {
							 | 
						||
| 
								 | 
							
								  throw new Error('Unknown build-analytics actionCategory "' + actionCategory + '"');
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if (eventType != 'start' && eventType != 'success' && eventType != 'error') {
							 | 
						||
| 
								 | 
							
								  throw new Error('Unknown build-analytics eventType "' + eventType + '"');
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var startTimestampFilePath = path.resolve(path.join(__dirname, '..', '..', 'tmp', 'analytics', actionCategory + '-' + actionName));
							 | 
						||
| 
								 | 
							
								var analyticsDirPath = path.dirname(startTimestampFilePath);
							 | 
						||
| 
								 | 
							
								var tmpDirPath = path.dirname(analyticsDirPath);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if (!fs.existsSync(tmpDirPath)) {
							 | 
						||
| 
								 | 
							
								  fs.mkdirSync(tmpDirPath);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								if (!fs.existsSync(analyticsDirPath)) {
							 | 
						||
| 
								 | 
							
								  fs.mkdirSync(analyticsDirPath);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								switch (eventType) {
							 | 
						||
| 
								 | 
							
								  case 'start':
							 | 
						||
| 
								 | 
							
								    analytics[actionCategory + 'Start'](actionName);
							 | 
						||
| 
								 | 
							
								    fs.writeFileSync(startTimestampFilePath, Date.now(), 'utf-8');
							 | 
						||
| 
								 | 
							
								    break;
							 | 
						||
| 
								 | 
							
								  case 'success':
							 | 
						||
| 
								 | 
							
								    var startTime = fs.readFileSync(startTimestampFilePath, 'utf-8');
							 | 
						||
| 
								 | 
							
								    analytics[actionCategory + 'Success'](actionName, Date.now() - startTime);
							 | 
						||
| 
								 | 
							
								    fs.unlinkSync(startTimestampFilePath);
							 | 
						||
| 
								 | 
							
								    break;
							 | 
						||
| 
								 | 
							
								  case 'error':
							 | 
						||
| 
								 | 
							
								    var startTime = fs.readFileSync(startTimestampFilePath, 'utf-8');
							 | 
						||
| 
								 | 
							
								    analytics[actionCategory + 'Error'](actionName, Date.now() - startTime);
							 | 
						||
| 
								 | 
							
								    fs.unlinkSync(startTimestampFilePath);
							 | 
						||
| 
								 | 
							
								}
							 |