fuck.js 927 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #!/usr/bin/env node
  2. var stream = require('stream');
  3. var util = require('util');
  4. var lib = require("./jsfuck.js");
  5. var repl = require('repl');
  6. if(process.argv.length !== 3) {
  7. function Stream() {
  8. stream.Transform.call(this);
  9. }
  10. util.inherits(Stream, stream.Transform);
  11. Stream.prototype._transform = function (chunk, encoding, callback) {
  12. var script = lib.JSFuck.encode(chunk.toString());
  13. var lines = script.split(/\n+/);
  14. for (var i = 0; i < lines.length; i++) {
  15. // ignore empty lines
  16. if (lines[i] !== '') this.push(lines[i] + '\n');
  17. }
  18. callback();
  19. };
  20. var fuckScript = new Stream();
  21. repl.start({
  22. prompt: "FUCK> ",
  23. input: fuckScript,
  24. useColors: true,
  25. output: process.stdout
  26. });
  27. process.stdin.pipe(fuckScript);
  28. } else {
  29. var data = require("fs").readFileSync(process.argv[2], "utf8");
  30. var output = lib.JSFuck.encode(data, false);
  31. console.log(output);
  32. }