#!/usr/bin/env node // A minimal implementation of the venerable Grep utility [1], which prints // lines that match a given regular expression [2]. Demonstrates how to parse // the input into lines and write strings. // // [1] https://en.wikipedia.org/wiki/Grep // [2] https://en.wikipedia.org/wiki/Regular_expression var rw = require("../"); var pattern = new RegExp(process.argv[2]), reader = rw.fileReader(process.argv[3] || "/dev/stdin"), writer = rw.fileWriter("/dev/stdout"), lineParser = rw.lineParser(); reader.fill(function flow(error) { if (error) throw error; var data = reader.read(), line; if (data) lineParser.push(data); while ((line = lineParser.pop(reader.ended)) != null) { if (pattern.test(line) && !writer.write(line + "\n")) { return writer.drain(flow); } } if (reader.ended) return writer.end(); reader.fill(flow); });