I’m trying to pass a byte array from inside my rails app into another ruby script (still inside my rails app), for example:
`./app/animations/fade.sh "\x01\x01\x04\x00" &`
Yields ArgumentError (string contains null byte)
I suppose I’m stumped with how I can form this string and than pass it to my script, which will use it in this sort of fashion:
@sp.write ["#{ARGV[0]}", "f", "\x12"]
I’d like to form the string (on my rails app) like this if possible:
led = "\x01#{led.id}\x04\x00"
But I keep getting ArgumentError (string contains null byte) error. Is there a way I can form this string from elements in my rails app, then pass it to my external script?
You should just pass the data in through standard input, not the command line. You can use
IO.popenfor this purpose:And on the reading side:
(By the way, it’s more common to name Ruby scripts
.rbinstead of.sh; iffade.shis meant to be a Ruby script, as I assume from the syntax you used in its example contents, you might want to name itfade.rb)