aboutsummaryrefslogtreecommitdiff
path: root/vim/bundle/syntastic/syntax_checkers/less/less-lint.coffee
blob: 0b05e4a7885c04071bbbba4c413444624f50ccf4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/usr/bin/env node

fs = require 'fs'
less = require 'less'
args = process.argv.slice(1)
options = {}

args = args.filter (arg) ->
    match = arg.match(/^-I(.+)$/)
    if match
        options.paths.push(match[1]);
        return false

    match = arg.match(/^--?([a-z][\-0-9a-z]*)(?:=([^\s]+))?$/i)
    if match
        arg = match[1]
    else
        return arg

    switch arg
        when 'strict-imports' then options.strictImports = true
        when 'include-path'
            options.paths = match[2].split(if os.type().match(/Windows/) then ';' else ':')
                .map (p) ->
                    if p
                        return path.resolve(process.cwd(), p)
        when 'O0' then options.optimization = 0
        when 'O1' then options.optimization = 1
        when 'O2' then options.optimization = 2

options.filename = args[1]

parser = new(less.Parser) options

fs.readFile(options.filename, 'utf-8', (err,data) ->
    parser.parse(data, (err, tree) ->
        if err
            less.writeError err
            process.exit(1)
    )
)