Dir.chdir("F:/workflows/graphics/asura-post/vijay/in")
if Dir.glob("*.pdf").length == 0 then
exit
end
pdffile = ARGV[0]
FileUtils.cp(pdffile, "//mako/archive/vijay") FileUtils.mv(pdffile, "../scratch")
It's failing on the simple first FileUtils.cp line. It says "uncaught
exception: can't convert nil into String."
The script acts on the first file it sees in the network folder.
He sets it to ARGV[0]. Perhaps he ran the script without providing an
argument?
Ugh, that's right, sorry. I don't know why I missed it; perhaps I
should try reading more carefully
-- Matma Rex
Thanks for your responses. I defined the variable with the ARGV,
correct. I'm globbing PDFs just to see if there are any PDFs. If there
aren't any, then, I exit the script. This script only works on PDFs, in
that folder. I run this script, along with many, many other scripts like
it, with a scheduling utility called ActiveBatch. I've told that
scheduling utility to fire this script when there's one PDF, at least,
in the folder. So, yes, the ARGV[0] stands for the one file at a time
way of executing against one or more PDF files. Thanks.
As Brian says it looks like ARGV[0] is not getting set (i.e. ActiveBatch is running it without an argument). It's a bit confusing because you say this will only be run if there are one or more pdf files, but then explicitly test for whether there are any files - is it just belt and braces? Is this (untested obvs.) snippet equivalent to what you want?
He sets it to ARGV[0]. Perhaps he ran the script without providing an
argument?
Ugh, that's right, sorry. I don't know why I missed it; perhaps I
should try reading more carefully
-- Matma Rex
Thanks for your responses. I defined the variable with the ARGV,
correct. I'm globbing PDFs just to see if there are any PDFs. If there
aren't any, then, I exit the script. This script only works on PDFs, in
that folder. I run this script, along with many, many other scripts like
it, with a scheduling utility called ActiveBatch. I've told that
scheduling utility to fire this script when there's one PDF, at least,
in the folder. So, yes, the ARGV[0] stands for the one file at a time
way of executing against one or more PDF files. Thanks.
that folder. I run this script, along with many, many other scripts
like
it, with a scheduling utility called ActiveBatch. I've told that
scheduling utility to fire this script when there's one PDF, at
least,
in the folder. So, yes, the ARGV[0] stands for the one file at a time
way of executing against one or more PDF files. Thanks.
As Brian says it looks like ARGV[0] is not getting set (i.e.
ActiveBatch is running it without an argument). It's a bit confusing
because you say this will only be run if there are one or more pdf
files, but then explicitly test for whether there are any files - is it
just belt and braces? Is this (untested obvs.) snippet equivalent to
what you want?
OK. Well, I've discovered that this script actually runs just fine in
the command shell. But, it doesn't run inside my Ruby editor. I get the
"nil" error when I run the script inside my Ruby editor. But, if I go
to the command shell with a PDF file in that directory and run the
script, it runs fine. So, I've sent an e-mail to my Ruby editor folks.
Thanks.