Coder Social home page Coder Social logo

how to read console input about shelljs HOT 16 OPEN

shelljs avatar shelljs commented on September 23, 2024
how to read console input

from shelljs.

Comments (16)

nfischer avatar nfischer commented on September 23, 2024 1

Sounds like we should implement a read() function similar to Bash's read. If anyone can open a PR, I'll gladly review

from shelljs.

pfraces avatar pfraces commented on September 23, 2024 1

@nfischer I want to read from stdin synchronously. I was expecting that cat called without filepaths would do it.

Since I haven't found a way to do it with shelljs I have used a stackoverflow snippet showing a cross-platform way of reading stdin synchronously.

Would you be interested in a PR for making cat reading from stdin when called without arguments?

from shelljs.

pfraces avatar pfraces commented on September 23, 2024 1

@nfischer I've started working on this and I've realized that cat can be piped like in pwd().cat() so in order to keep that functionality I propose to use - as filepath to specify standard input instead of the absence of filepaths

cat('file1.txt', '-', 'file2.txt')

From man cat:

With no FILE, or when FILE is -, read standard input

Suggestions?

from shelljs.

dreamstu avatar dreamstu commented on September 23, 2024

+1

from shelljs.

tracker1 avatar tracker1 commented on September 23, 2024

See readline or readline-sync

readline-sync defaults to stdio, for readline you'll need something like below...

//readline
var readline = require('readline');

var rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
  terminal: false
});

rl.on('line', function (cmd) {
  console.log('You just typed: '+cmd);
});

from shelljs.

iolufemi avatar iolufemi commented on September 23, 2024

+1

from shelljs.

iolufemi avatar iolufemi commented on September 23, 2024

See the method used in issue #203
If it relates to this.

from shelljs.

medihack avatar medihack commented on September 23, 2024

I am having the same problem as in #203, but I don't want to provide a text file with the password. I want to type it in manually. Doesn't seem to work with shelljs :-(
+1

from shelljs.

nfischer avatar nfischer commented on September 23, 2024

@pfraces Sounds like something we'd be interested in 👍

from shelljs.

nfischer avatar nfischer commented on September 23, 2024

Please ping this thread if you run into any issues implementing this. Thanks!

from shelljs.

nfischer avatar nfischer commented on September 23, 2024

Sounds good to me. Thanks for pointing that out.

If you can implement it to work with - as a file name, I'll try to modify the the internal function for reading from the left-hand-side of a pipe to also check standard input if it's not in a pipe.

from shelljs.

ariporad avatar ariporad commented on September 23, 2024

Hmm...

(Sorry to interject)...

Here's the problem with that: cat - is async, it doesn't return until you tell it to... I'm not sure how that would integrate with shelljs.

from shelljs.

nfischer avatar nfischer commented on September 23, 2024

How is cat async? It blocks while it reads input, and returns when it receives EOF.

from shelljs.

ariporad avatar ariporad commented on September 23, 2024

async isn't really the right word, but I'm not sure how to describe it.

Usually, It works like this:

$ cat _ > foo.txt && echo "Done"
> Blah Blah Blah
> ^C
Done
$

So, that would become:

$ node
> $.cat('-'); $.echo("Done");
---> Blah Blah Blah
---> ^C # Now this doesn't work, it kills node instead.
Done # This never happens

from shelljs.

nfischer avatar nfischer commented on September 23, 2024

I believe the standard way of sending EOF is to use ^D instead. If we really wanted, we could write a signal handler for ^C, but I'd prefer to hold off, especially since this is a less-common use-case. We can implement that if there are feature requests down the road.

from shelljs.

ariporad avatar ariporad commented on September 23, 2024

Ok, That works for me.

Thanks! Ari
On Tue, Jun 7, 2016 at 8:03 PM, Nate Fischer [email protected] wrote:
I believe the standard way of sending EOF is to use ^D instead. If we really wanted, we could write a signal handler for ^C , but I'd prefer to hold off, especially since this is a less-common use-case. We can implement that if there are feature requests down the road.


You are receiving this because you commented.
Reply to this email directly, view it on GitHub [https://github.com//issues/18#issuecomment-224475282] , or mute the thread [https://github.com/notifications/unsubscribe/ABu7pIxMAjkjK0S5Ccb-xJ1_r4Q7rxWOks5qJjD4gaJpZM4ABnbw] .

from shelljs.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.