UNPKG

1.07 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 // undocumented
32 '--no-optimize': Boolean
33 })
34
35 if (args['--help']) {
36 process.stdout.write(usage)
37
38 process.exit(2)
39 }
40
41 if (args._.length < 2) {
42 throw RangeError('too few arguments')
43 }
44
45 if (args._.length > 2) {
46 throw RangeError('too many arguments')
47 }
48
49 const [input, output] = args._
50
51 Object.assign(args, {input, output})
52
53 await action(args)
54 } catch (error) {
55 process.stderr.write(`${error}\n`)
56
57 process.exit(1)
58 }
59}
60
61program()