|
| 1 | +import { Args, Command, Flags } from '@oclif/core'; |
| 2 | +import { resolve } from 'path'; |
| 3 | +import { |
| 4 | + createDataVizIn, |
| 5 | + getData, |
| 6 | + getTheRootDirectory, |
| 7 | + readConfig, |
| 8 | + saveResults, |
| 9 | +} from '../../shared/tracker/util'; |
| 10 | +import { processConfig } from '../../shared/tracker/process-config'; |
| 11 | +import { ChartConfig } from '../../shared/tracker/models/chart-config'; |
| 12 | + |
| 13 | +export class TrackerRun extends Command { |
| 14 | + static description = 'Run the tracker'; |
| 15 | + |
| 16 | + static examples = ['<%= config.bin %> <%= command.id %>']; |
| 17 | + |
| 18 | + static flags = { |
| 19 | + root: Flags.string({ char: 'r', description: 'root dir of the project' }), |
| 20 | + config: Flags.string({ char: 'c', description: 'path to config file' }), |
| 21 | + chart: Flags.custom<ChartConfig>({ |
| 22 | + description: 'chart configuration', |
| 23 | + })(), |
| 24 | + }; |
| 25 | + |
| 26 | + static args = {}; |
| 27 | + |
| 28 | + public async run(): Promise<void> { |
| 29 | + const { flags } = await this.parse(TrackerRun); |
| 30 | + |
| 31 | + const localRootDir = getTheRootDirectory(global.process.cwd()); |
| 32 | + |
| 33 | + const rootDirectory = flags.root ? resolve(flags.root) : localRootDir; |
| 34 | + const config = readConfig(localRootDir, flags.config); |
| 35 | + |
| 36 | + const results = await processConfig(config, rootDirectory); |
| 37 | + |
| 38 | + saveResults(localRootDir, config.outputDir, results); |
| 39 | + |
| 40 | + const allData = getData(localRootDir, config.outputDir); |
| 41 | + |
| 42 | + const parentDir = resolve(localRootDir, config.outputDir); |
| 43 | + |
| 44 | + const chartConfig = new ChartConfig(flags.chart); |
| 45 | + |
| 46 | + await createDataVizIn(chartConfig, parentDir, allData); |
| 47 | + } |
| 48 | +} |
0 commit comments