+++ /dev/null
-#!/usr/bin/env node
-/* eslint-disable import/unambiguous */
-'use strict';
-
-const fs = require('fs');
-const updateNotifier = require('update-notifier');
-const meow = require('meow');
-const globby = require('globby');
-const getStdin = require('get-stdin');
-const pify = require('pify');
-const { arrify, ignore } = require('./utils');
-const { format } = require('./index');
-
-const cli = meow(
- `
-Usage
- $ prettier-stylelint [<file|glob> ...]
-
-Options
- --ignore Additional paths to ignore [Can be set multiple times]
- --extension Additional extension to lint [Can be set multiple times]
- --cwd=<dir> Working directory for files
- --stdin Validate/fix code from stdin ('prettier-stylelint -' also works)
- --write Edit files in place (DRAGONS AHEAD !!)
- --quiet -q Only log std.err
-
-Examples
- $ prettier-stylelint
- $ prettier-stylelint index.js
- $ prettier-stylelint *.js !foo.js
- $ echo 'a[id="foo"] { content: "x"; }' | prettier-stylelint --stdin
-
-Default pattern when no arguments:
- **/*.{css,scss,less,sss}
-`,
- {
- string: ['_', 'ignore', 'extension', 'cwd'],
- boolean: ['stdin', 'write'],
- default: {
- cwd: process.cwd(),
- write: false,
- quiet: false
- },
- alias: { q: 'quiet' }
- }
-);
-
-updateNotifier({ pkg: cli.pkg }).notify();
-
-let input = cli.input;
-const opts = cli.flags;
-const DEFAULT_EXTENSION = ['css', 'scss', 'less', 'sss'];
-const DEFAULT_PATTERN = `**/*.{${DEFAULT_EXTENSION.join(',')}}`;
-const DEFAULT_IGNORE = [
- '**/node_modules/**',
- '**/bower_components/**',
- 'flow-typed/**',
- 'coverage/**',
- '{tmp,temp}/**',
- '**/*.min.{css,scss,less,sss}',
- '**/bundle.{css,scss,less,sss}',
- 'fixture{-*,}.{css,scss,less,sss}',
- 'fixture{s,}/**',
- '{test,tests,spec,__tests__}/fixture{s,}/**',
- 'vendor/**',
- 'dist/**'
-];
-
-const options = {
- ignore: DEFAULT_IGNORE.concat(arrify(opts.ignore)),
- extensions: DEFAULT_EXTENSION.concat(arrify(opts.extension)),
- cwd: opts.cwd,
- write: opts.write,
- quiet: opts.quiet
-};
-
-if (input[0] === '-') {
- opts.stdin = true;
- input.shift();
-}
-if (opts.stdin) {
- getStdin()
- .then(str =>
- format({
- filepath: opts.cwd,
- text: str
- }).then(source => process.stdout.write(source))
- )
- .catch((err) => {
- console.error(err.stack || err);
- process.exitCode = 1;
- });
-} else {
- const isEmptyPatterns = input.length === 0;
-
- input = isEmptyPatterns ? [DEFAULT_PATTERN] : arrify(input);
-
- globby(input, {
- ignore: options.ignore,
- nodir: true,
- cwd: options.cwd
- })
- .then((paths) => {
- paths = ignore(paths, options);
-
- return Promise.all(
- paths.map(path =>
- format({
- text: fs.readFileSync(path, 'utf8'),
- filePath: path,
- quiet: options.quiet
- })
- .then((formatted) => {
- if (!options.quiet) {
- console.log(formatted);
- }
- if (options.write) {
- return pify(fs.writeFile)(path, formatted);
- }
-
- return formatted;
- })
- .catch((err) => {
- console.error(
- `prettier-stylelint [ERROR]: There was an error formatting "${path}"\n`
- );
- console.error(err.stack || err);
- console.error('\n');
- process.exitCode = 1;
- })
- )
- );
- })
- .catch((err) => {
- console.error(err.stack || err);
- process.exitCode = 1;
- });
-}