#!/usr/bin/env node

let { readFileSync } = require('fs')
let { join } = require('path')

require('./check-npm-version')
let updateDb = require('./')

const ROOT = __dirname

function getPackage() {
  return JSON.parse(readFileSync(join(ROOT, 'package.json')))
}

let args = process.argv.slice(2)

const USAGE = 'Usage:\n  npx update-browserslist-db\n'

function isArg(arg) {
  return args.some(i => i === arg)
}

function error(msg) {
  process.stderr.write('update-browserslist-db: ' + msg + '\n')
  process.exit(1)
}

if (isArg('--help') || isArg('-h')) {
  process.stdout.write(getPackage().description + '.\n\n' + USAGE + '\n')
} else if (isArg('--version') || isArg('-v')) {
  process.stdout.write('browserslist-lint ' + getPackage().version + '\n')
} else {
  try {
    updateDb()
  } catch (e) {
    if (e.name === 'BrowserslistUpdateError') {
      error(e.message)
    } else {
      throw e
    }
  }
}
