UNPKG

1.02 kBJavaScriptView Raw
1#!/usr/bin/env node
2import arg from 'arg'
3import {magenta, bold} from 'kleur/colors'
4import action from './index.js'
5
6const usage = `
7@erickmerchant/css
8
9${bold('Usage:')}
10
11 $ ${magenta('css')} [options] <input> <output>
12
13${bold('Options:')}
14
15 -w, --watch watch for changes
16 -d, --dev don't minify. throw on missing
17 -h, --help display this message
18
19`
20
21const program = async () => {
22 try {
23 const args = arg({
24 '--watch': Boolean,
25 '--dev': Boolean,
26 '--help': Boolean,
27 '-w': '--watch',
28 '-d': '--dev',
29 '-h': '--help'
30 })
31
32 if (args['--help']) {
33 process.stdout.write(usage)
34
35 process.exit(2)
36 }
37
38 if (args._.length < 2) {
39 throw RangeError('too few arguments')
40 }
41
42 if (args._.length > 2) {
43 throw RangeError('too many arguments')
44 }
45
46 const [input, output] = args._
47
48 Object.assign(args, {input, output})
49
50 await action(args)
51 } catch (error) {
52 process.stderr.write(`${error}\n`)
53
54 process.exit(1)
55 }
56}
57
58program()