Search code examples
rubypipepostfix-mta

How can I get piped data with arguments on Ruby2.4


In Python3, I have this code:

arg, unk = parser.parse_known_args()
buf = ''

for line in fileinput.input(unk):
    buf += line
fileinput.close()

This code allows me to get piped data along with arguments to the program.

What I am achieving is to get piped e-mail from postfix. Postfix pipe email file to my python app and also add some arguments that I want. In Ruby I cannot find a proper way of doing this. Piped data can be max. ~25MB. So I need a correct, proper and smooth way of handling this. I want to handle even large files without issues.

ruby test.rb --option ARG

Of course, I can get arguments easily but I also want to get PIPED data.

In fact, I cannot find exact method that Ruby has for getting piped data. I am stuck at this point. Can anyone give me a hand on this?


Solution

  • It seems that in ruby you want to read from ARGF. It handles files passed as filenames or piped to your program.