verdigris/index.ts
2025-09-19 21:11:03 -06:00

49 lines
1.5 KiB
JavaScript

#!/usr/bin/env node
import { Command } from 'commander'
import previewList from './src/preview/cli-list'
import previewSnippet from './src/preview/cli-snippet'
import buildTOML from './src/build/toml'
import { nanoseconds } from 'bun';
import { timerToSeconds } from './src/helpers/math';
const program = new Command();
async function log(isVerbose: true, file: string, timer: [number, number]) {
const time: string = isVerbose ? ` ${timerToSeconds(timer)} seconds` : ''
console.info(`${file}${time}`)
}
program
.name('verdigris')
.description('Mining up the very best Color Palette')
.version('0.0.1')
program
.command('preview')
.description('stdout some examples')
.option('-v, --verbose', 'additional logs')
.option('--no-list', 'do not show colors as a list')
.option('--no-snippet', 'do not a code snippet')
.action((options) => {
if (options.verbose) console.info('Previewing Color Palette')
if (options.verbose) console.info('List:')
if (options.list) previewList()
if (options.verbose) console.info('Code Example:')
if (options.snippet) previewSnippet()
});
program
.command('build')
.description('compile toml and other consumable formats')
.option('-v, --verbose', 'additional logs')
.action(async (options) => {
const timer = process.hrtime()
if (options.verbose) console.info('Building Direct Exports...')
log(options.verbose, await buildTOML(), timer)
if (options.verbose) console.info('Building Ports...')
});
program.parse();