Sha256: 47bc67f3ea6f9cbc2615775b0026edd563677fa352829f928a29febdb55a645b

Contents?: true

Size: 1.66 KB

Versions: 72

Compression:

Stored size: 1.66 KB

Contents

#!/usr/bin/env node
var cardinal = require('..')
  , utl = require('../utl')
  , settings = require('../settings')
  , args = process.argv
  , theme = settings.resolveTheme()
  , opts = settings.getSettings()
  , highlighted
  ;

opts = opts || {};
opts.theme = theme;

function usage() {
  var msg = [ 
      'Usage: cdl <filename.js> [options]'
    , ''
    , 'Options (~/.cardinalrc overrides):'
    , '  --nonum: turn off line printing'
    , ''
    , 'Unix Pipe Example: cat filename.js | grep console | cdl'
    , ''
  ].join('\n');
  console.log(msg);
}

function highlightFile () {
  try {
    highlighted = cardinal.highlightFileSync(args[2], opts);
    console.log(highlighted);
  } catch (e) {
    console.trace();
    console.error(e);
  }
}

// E.g., "cardinal myfile.js"
if (args.length === 3) return highlightFile();

var opt = args[3];

// E.g., "cardinal myfile.js --nonum"
if (opt && opt.indexOf('--') === 0 ) {
  if ((/^--(nonum|noline)/i).test(opt)) opts.linenos = false;
  else { 
    usage();
    return console.error('Unknown option: ', opt);
  }
 
  return highlightFile();
}


// UNIX pipes e.g., "cat myfile.js | grep console | cardinal
var stdin = process.stdin
  , stdout = process.stdout;

// line numbers don't make sense when we are printing line by line
opts.linenos = false;

stdin.setEncoding('utf-8');
stdin.resume();
stdin
  .on('data', function (chunk) {
    chunk.split('\n').forEach(function (line) {
      try {
        stdout.write(cardinal.highlight(line, opts) + '\n');
      } catch (e) {
        // line doesn't represent a valid js snippet and therefore cannot be parsed -> just print as is
        stdout.write(line + '\n');
      }
    });
  });

Version data entries

72 entries across 72 versions & 3 rubygems

Version Path
ilog-0.4.1 node_modules/cardinal/bin/cdl.js
ilog-0.4.0 node_modules/cardinal/bin/cdl.js
ilog-0.3.3 node_modules/cardinal/bin/cdl.js
trusty-festivity-extension-2.6.3 node_modules/bower/node_modules/cardinal/bin/cdl.js
trusty-festivity-extension-2.6.2 node_modules/bower/node_modules/cardinal/bin/cdl.js
trusty-festivity-extension-2.6.1 node_modules/bower/node_modules/cardinal/bin/cdl.js
trusty-festivity-extension-2.6 node_modules/bower/node_modules/cardinal/bin/cdl.js
trusty-festivity-extension-2.5.19 node_modules/bower/node_modules/cardinal/bin/cdl.js
trusty-festivity-extension-2.5.18 node_modules/bower/node_modules/cardinal/bin/cdl.js
trusty-festivity-extension-2.5.17 node_modules/bower/node_modules/cardinal/bin/cdl.js
trusty-festivity-extension-2.5.16 node_modules/bower/node_modules/cardinal/bin/cdl.js
trusty-festivity-extension-2.5.15 node_modules/bower/node_modules/cardinal/bin/cdl.js
trusty-festivity-extension-2.5.14 node_modules/bower/node_modules/cardinal/bin/cdl.js
trusty-festivity-extension-2.5.13 node_modules/bower/node_modules/cardinal/bin/cdl.js
trusty-festivity-extension-2.5.12 node_modules/bower/node_modules/cardinal/bin/cdl.js
trusty-festivity-extension-2.5.11 node_modules/bower/node_modules/cardinal/bin/cdl.js
trusty-festivity-extension-2.5.10 node_modules/bower/node_modules/cardinal/bin/cdl.js
trusty-festivity-extension-2.5.9 node_modules/bower/node_modules/cardinal/bin/cdl.js
trusty-festivity-extension-2.5.8 node_modules/bower/node_modules/cardinal/bin/cdl.js
trusty-festivity-extension-2.5.7 node_modules/bower/node_modules/cardinal/bin/cdl.js