Simple, simple stuff

Hello,
I just rebuilt my Mac, with Ruby. I'm getting these what I think are
very primitive errors when I try to run one of my scripts locally.

pb4072imac:~ peterbailey$ checkorca dy3242g1
/scripts/checkorca.rb: line 2: require: command not found
/scripts/checkorca.rb: line 4: require: command not found
/scripts/checkorca.rb: line 6: orcafile: command not found
host: couldn't get address for 'http://ps2000-graphics-prod.bna.com':
not found
/scripts/checkorca.rb: line 10: clnt: command not found
/scripts/checkorca.rb: line 11: syntax error near unexpected token
`nil,'
/scripts/checkorca.rb: line 11: `clnt.set_auth(nil, 'production',
'prod')'

What is it complaining about "require?" Yeh, I've got "require" there at
the top. But, I need it there.
And, why can't it find the address of that URL?

Thanks,
Peter

···

--
Posted via http://www.ruby-forum.com/.

Hi,

I don't work with a Mac, so take this with a grain of salt: it looks
like instead of running the script with the Ruby interpreter you are
running it as if it were a shell script, hence all the "command not
found" errors, cause the shell can't find those commands. Do you have
an appropriate shebang line (not sure how that would look like in a
Mac):

something like:

#!/bin/env ruby

Otherwise you could try calling ruby directly:

$ ruby checkorca.rb dy3242g1

Jesus.

···

On Tue, Dec 17, 2013 at 6:12 PM, Peter Bailey <lists@ruby-forum.com> wrote:

Hello,
I just rebuilt my Mac, with Ruby. I'm getting these what I think are
very primitive errors when I try to run one of my scripts locally.

pb4072imac:~ peterbailey$ checkorca dy3242g1
/scripts/checkorca.rb: line 2: require: command not found
/scripts/checkorca.rb: line 4: require: command not found
/scripts/checkorca.rb: line 6: orcafile: command not found
host: couldn't get address for 'http://ps2000-graphics-prod.bna.com':
not found
/scripts/checkorca.rb: line 10: clnt: command not found
/scripts/checkorca.rb: line 11: syntax error near unexpected token
`nil,'
/scripts/checkorca.rb: line 11: `clnt.set_auth(nil, 'production',
'prod')'

What is it complaining about "require?" Yeh, I've got "require" there at
the top. But, I need it there.
And, why can't it find the address of that URL?

Do you need the 'bang' - ! - in your shebang?

#!/ vs. #/

(I use Windows.)

···

--
Posted via http://www.ruby-forum.com/.

"Jesús Gabriel y Galán" <jgabrielygalan@gmail.com> wrote in post
#1130870:

···

On Tue, Dec 17, 2013 at 6:12 PM, Peter Bailey <lists@ruby-forum.com> > wrote:

/scripts/checkorca.rb: line 10: clnt: command not found
/scripts/checkorca.rb: line 11: syntax error near unexpected token
`nil,'
/scripts/checkorca.rb: line 11: `clnt.set_auth(nil, 'production',
'prod')'

What is it complaining about "require?" Yeh, I've got "require" there at
the top. But, I need it there.
And, why can't it find the address of that URL?

Hi,

I don't work with a Mac, so take this with a grain of salt: it looks
like instead of running the script with the Ruby interpreter you are
running it as if it were a shell script, hence all the "command not
found" errors, cause the shell can't find those commands. Do you have
an appropriate shebang line (not sure how that would look like in a
Mac):

something like:

#!/bin/env ruby

Otherwise you could try calling ruby directly:

$ ruby checkorca.rb dy3242g1

Jesus.

Thanks, Jesus. I checked my script and I do have the shebang there.
Thanks, anyway.

--
Posted via http://www.ruby-forum.com/\.

Jacob V. wrote in post #1130886:

Do you need the 'bang' - ! - in your shebang?

#!/ vs. #/

(I use Windows.)

I tried it with the screamer (!), but, I still get the same results.

If I run the script like this in my Mac shell, I'm alright.

  ruby checkorca.rb dy3242g1

Normally, I run it like this:

   checkorca dy3242g1

because, I have a simple script in my scripts directory called
"checkorca" that simply calls out the Ruby script.

If I run this, it doesn't run either.

  checkorca.rb dy3242g1

It's like there's some disconnect with Ruby itself, or, at least, the
Ruby version I'm running. I used rbenv to install my Ruby.

···

--
Posted via http://www.ruby-forum.com/\.

It might help if you pasted the script.

···

On Tue, Dec 17, 2013 at 11:22 AM, Peter Bailey <lists@ruby-forum.com> wrote:

"Jesús Gabriel y Galán" <jgabrielygalan@gmail.com> wrote in post
#1130870:
> On Tue, Dec 17, 2013 at 6:12 PM, Peter Bailey <lists@ruby-forum.com> > > wrote:
>> /scripts/checkorca.rb: line 10: clnt: command not found
>> /scripts/checkorca.rb: line 11: syntax error near unexpected token
>> `nil,'
>> /scripts/checkorca.rb: line 11: `clnt.set_auth(nil, 'production',
>> 'prod')'
>>
>> What is it complaining about "require?" Yeh, I've got "require" there at
>> the top. But, I need it there.
>> And, why can't it find the address of that URL?
>
> Hi,
>
> I don't work with a Mac, so take this with a grain of salt: it looks
> like instead of running the script with the Ruby interpreter you are
> running it as if it were a shell script, hence all the "command not
> found" errors, cause the shell can't find those commands. Do you have
> an appropriate shebang line (not sure how that would look like in a
> Mac):
>
> something like:
>
> #!/bin/env ruby
>
> Otherwise you could try calling ruby directly:
>
> $ ruby checkorca.rb dy3242g1
>
> Jesus.

Thanks, Jesus. I checked my script and I do have the shebang there.
Thanks, anyway.

--
Posted via http://www.ruby-forum.com/\.

tamouse m. wrote in post #1130882:

>> What is it complaining about "require?" Yeh, I've got "require" there at
> Mac):

Thanks, Jesus. I checked my script and I do have the shebang there.
Thanks, anyway.

--
Posted via http://www.ruby-forum.com/\.

It might help if you pasted the script.

Uh, it's pretty big. But, here it is. Thanks.

#/Users/peterbailey/.rbenv/shims/ruby
require 'rubygems'
#noinspection RubyResolve
require 'httpclient'

orcafile = ARGV[0]

host = 'http://ps2000-graphics-prod.bna.com'
#noinspection RubyResolve
clnt = HTTPClient.new
clnt.set_auth(nil, 'production', 'prod')

#Find PNG on Orca
format = 'png'
url = URI.parse("#{host}/images/view/#{format}/#{orcafile}")
pngfile = orcafile + '.png'
  response = clnt.head(url)
#noinspection RubyResolve
if HTTP::Status.successful?(response.status)
    puts "#{pngfile} is on Orca.\n"
  else
    puts "#{pngfile} is NOT on Orca.\n"
  end

#Find PDF on Orca
format = 'pdf'
url = URI.parse("#{host}/images/view/#{format}/#{orcafile}")
pdffile = orcafile + '.pdf'
  response = clnt.head(url)
#noinspection RubyResolve
if HTTP::Status.successful?(response.status)
    puts "#{pdffile} is on Orca.\n"
  else
    puts "#{pdffile} is NOT on Orca.\n"
  end

#Find TIFF on Orca
format = 'tiff'
url = URI.parse("#{host}/images/view/#{format}/#{orcafile}")
tifffile = orcafile + '.tif'
  response = clnt.head(url)
#noinspection RubyResolve
if HTTP::Status.successful?(response.status)
    puts "#{tifffile} is on Orca.\n"
  else
    puts "#{tifffile} is NOT on Orca.\n"
  end

#Find GIF on Orca
format = 'gif'
url = URI.parse("#{host}/images/view/#{format}/#{orcafile}")
giffile = orcafile + '.gif'
  response = clnt.head(url)
#noinspection RubyResolve
if HTTP::Status.successful?(response.status)
    puts "#{giffile} is on Orca.\n"
  else
    puts "#{giffile} is NOT on Orca.\n"
  end

#Find EPS on Orca
format = 'eps'
url = URI.parse("#{host}/images/view/#{format}/#{orcafile}")
epsfile = orcafile + '.eps'
  response = clnt.head(url)
#noinspection RubyResolve
if HTTP::Status.successful?(response.status)
    puts "#{epsfile} is on Orca.\n"
  else
    puts "#{epsfile} is NOT on Orca.\n"
  end

puts "\n"

#PS2000 Files
orcafile = File.basename(orcafile, '.*')

if orcafile.match(/^ehs-/)
  exit
end

if File.exist?("/volumes/graphics/artrefpdf_color/master/#{orcafile}")
  filetime =
File.stat("/volumes/graphics/artrefpdf_color/master/#{orcafile}").mtime
  filedirectory = '/volumes/graphics/artrefpdf_color/master/'
  filetime = filetime.to_s.gsub(/ -0[0-9]00/, '')
  puts "#{orcafile} is in the Color PS2k image library at:
  DIRECTORY #{filedirectory}\n DATED #{filetime}\n"
end

···

On Tue, Dec 17, 2013 at 11:22 AM, Peter Bailey <lists@ruby-forum.com> > wrote:

#
#
if File.exist?("/volumes/graphics/images_9/master/#{orcafile}")
  filetime =
File.stat("/volumes/graphics/images_9/master/#{orcafile}").mtime
  filedirectory = '/volumes/graphics/images_9/master/'
  filetime = filetime.to_s.gsub(/ -0[0-9]00/, '')
  #noinspection RubyResolve,RubyResolve,RubyResolve
  puts "#{orcafile} is in the regular PS2K image library at:
  DIRECTORY #{filedirectory}\n DATED #{filetime}."
elsif File.exist?("/volumes/graphics/images_8/master/#{orcafile}")
  filetime =
File.stat("/volumes/graphics/images_8/master/#{orcafile}").mtime
  filedirectory = '/volumes/graphics/images_8/master/'
  filetime = filetime.to_s.gsub(/ -0[0-9]00/, '')
  puts "#{orcafile} is in the regular PS2K image library at:
DIRECTORY #{filedirectory}\n DATED #{filetime}\n"
elsif File.exist?("/volumes/graphics/images_7/master/#{orcafile}")
  filetime =
File.stat("/volumes/graphics/images_7/master/#{orcafile}").mtime
  filedirectory = '/volumes/graphics/images_7/master/'
  filetime = filetime.to_s.gsub(/ -0[0-9]00/, '')
  puts "#{orcafile} is in the regular PS2K image library at:
  DIRECTORY #{filedirectory}\n DATED #{filetime}\n"
elsif File.exist?("/volumes/graphics/images_6/master/#{orcafile}")
  filetime =
File.stat("/volumes/graphics/images_6/master/#{orcafile}").mtime
  filedirectory = '/volumes/graphics/images_6/master/'
  filetime = filetime.to_s.gsub(/ -0[0-9]00/, '')
  puts "#{orcafile} is in the regular PS2K image library at:
  DIRECTORY #{filedirectory}\n DATED #{filetime}\n"
elsif File.exist?("/volumes/graphics/images_5/master/#{orcafile}")
  filetime =
File.stat("/volumes/graphics/images_5/master/#{orcafile}").mtime
  filedirectory = '/volumes/graphics/images_5/master/'
  filetime = filetime.to_s.gsub(/ -0[0-9]00/, '')
  puts "#{orcafile} is in the regular PS2K image library at:
  DIRECTORY #{filedirectory}\n DATED #{filetime}\n"
elsif File.exist?("/volumes/graphics/images_4/master/#{orcafile}")
  filetime =
File.stat("/volumes/graphics/images_4/master/#{orcafile}").mtime
  filedirectory = '/volumes/graphics/images_4/master/'
  filetime = filetime.to_s.gsub(/ -0[0-9]00/, '')
  puts "#{orcafile} is in the regular PS2K image library at:
  DIRECTORY #{filedirectory}\n DATED #{filetime}\n"
elsif File.exist?("/volumes/graphics/images_3/master/#{orcafile}")
  filetime =
File.stat("/volumes/graphics/images_3/master/#{orcafile}").mtime
  filedirectory = '/volumes/graphics/images_3/master/'
  filetime = filetime.to_s.gsub(/ -0[0-9]00/, '')
  puts "#{orcafile} is in the regular PS2K image library at:
  DIRECTORY #{filedirectory}\n DATED #{filetime}\n"
elsif File.exist?("/volumes/graphics/images_2/master/#{orcafile}")
  filetime =
File.stat("/volumes/graphics/images_2/master/#{orcafile}").mtime
  filedirectory = '/volumes/graphics/images_2/master/'
  filetime = filetime.to_s.gsub(/ -0[0-9]00/, '')
  puts "#{orcafile} is in the regular PS2K image library at:
  DIRECTORY #{filedirectory}\n DATED #{filetime}\n"
elsif File.exist?("/volumes/graphics/images_1/master/#{orcafile}")
  filetime =
File.stat("/volumes/graphics/images_1/master/#{orcafile}").mtime
  filedirectory = '/volumes/graphics/images_1/master/'
  filetime = filetime.to_s.gsub(/ -0[0-9]00/, '')
  puts "#{orcafile} is in the regular PS2K image library at:
  DIRECTORY #{filedirectory}\n DATED #{filetime}\n"
else
  puts "The file is not in the ps2000 image library. It's probably for a
web-only service."
end

--
Posted via http://www.ruby-forum.com/\.

tamouse m. wrote in post #1130882:
>
>> >> What is it complaining about "require?" Yeh, I've got "require"
there at
>> > Mac):
>>
>>
>> Thanks, Jesus. I checked my script and I do have the shebang there.
>> Thanks, anyway.
>>
>> --
>> Posted via http://www.ruby-forum.com/\.
>>
>
> It might help if you pasted the script.

Uh, it's pretty big. But, here it is. Thanks.

Thanks -- it's not *that* long, but I guess I could have asked for the head
of the file instead... :))

#/Users/peterbailey/.rbenv/shims/ruby

It should be:

#!/Users/peterbailey/.rbenv/shims/ruby

if you actually do have a shim for ruby at that exact path. Type that at
the Terminal prompt to see.

This is what I use to start scripts:

#!/usr/bin/env ruby

and it picks up which ruby to run based upon the user's environment, which
defaults to the system ruby.

···

On Tue, Dec 17, 2013 at 12:58 PM, Peter Bailey <lists@ruby-forum.com> wrote:

> On Tue, Dec 17, 2013 at 11:22 AM, Peter Bailey <lists@ruby-forum.com> > > wrote:

Are you pointing to the ruby directory or the executable, you need to
point to the ruby executable?
Should it maybe be:
#!/Users/peterbailey/.rbenv/shims/ruby/bin/ruby

From: tamouse pontiki <tamouse.lists@gmail.com>
To: ruby-talk ML <ruby-talk@ruby-lang.org>
Date: 12/18/2013 01:06 AM
Subject: Re: simple, simple stuff
Sent by: "ruby-talk" <ruby-talk-bounces@ruby-lang.org>

tamouse m. wrote in post #1130882:

>> What is it complaining about "require?" Yeh, I've got "require"

there at

> Mac):

Thanks, Jesus. I checked my script and I do have the shebang there.
Thanks, anyway.

--
Posted via http://www.ruby-forum.com/\.

It might help if you pasted the script.

Uh, it's pretty big. But, here it is. Thanks.

Thanks -- it's not *that* long, but I guess I could have asked for the

head of the file instead... :))

#/Users/peterbailey/.rbenv/shims/ruby

It should be:

#!/Users/peterbailey/.rbenv/shims/ruby

if you actually do have a shim for ruby at that exact path. Type that at

the Terminal prompt to see.

This is what I use to start scripts:

#!/usr/bin/env ruby

and it picks up which ruby to run based upon the user's environment,

which defaults to the system ruby.

···

On Tue, Dec 17, 2013 at 12:58 PM, Peter Bailey <lists@ruby-forum.com> wrote:

On Tue, Dec 17, 2013 at 11:22 AM, Peter Bailey <lists@ruby-forum.com> >> wrote:

tamouse m. wrote in post #1130882:
>
>> >> What is it complaining about "require?" Yeh, I've got "require" there at
>> > Mac):
>>
>>
>> Thanks, Jesus. I checked my script and I do have the shebang there.
>> Thanks, anyway.
>>
>> --
>> Posted via http://www.ruby-forum.com/\.
>>
>
> It might help if you pasted the script.

Uh, it's pretty big. But, here it is. Thanks.

Thanks -- it's not *that* long, but I guess I could have asked for the head of the file instead... :))

#/Users/peterbailey/.rbenv/shims/ruby

It should be:

#!/Users/peterbailey/.rbenv/shims/ruby

if you actually do have a shim for ruby at that exact path. Type that at the Terminal prompt to see.

One way to determine which ruby a particular shell will pick up is to use the which command, for example:

ratdog:~ mike$ which ruby
/Users/mike/.rbenv/shims/ruby

Is that the same as the interpreter specified in the #! line?

To see if the interpreter in your #! line exists, you can check by using ls, for example on my system I would do:

ratdog:~ mike$ ls -l /Users/mike/.rbenv/shims/ruby
-rwxr-xr-x 7 mike 501 408 28 Oct 13:18 /Users/mike/.rbenv/shims/ruby

If it does exist then I would check that the script is executable, and that there are no invisible characters at the end of the #! line (usually this happens when a file comes from windows to a unix-like environment and what looks like ruby at the end of the line is really ruby\r)

One way to "repair" this might be to use

which ruby

then delete the top line of the file, enter #!, and then copy and paste the output of which ruby into the file.

In general I prefer #!/usr/bin/env ruby to hard coding a path because it lets me switch between rbenv and rvm and not have to update all my scripts — having the .rbenv/shims in there explicitly couples your script to the detail of how you currently install ruby.

Hope this helps,

Mike

···

On Dec 18, 2013, at 1:05 AM, tamouse pontiki <tamouse.lists@gmail.com> wrote:

On Tue, Dec 17, 2013 at 12:58 PM, Peter Bailey <lists@ruby-forum.com> wrote:
> On Tue, Dec 17, 2013 at 11:22 AM, Peter Bailey <lists@ruby-forum.com> > > wrote:

This is what I use to start scripts:

#!/usr/bin/env ruby

and it picks up which ruby to run based upon the user's environment, which defaults to the system ruby.

--

Mike Stok <mike@stok.ca>
http://www.stok.ca/~mike/

The "`Stok' disclaimers" apply.

unknown wrote in post #1130962:

Are you pointing to the ruby directory or the executable, you need to
point to the ruby executable?
Should it maybe be:
#!/Users/peterbailey/.rbenv/shims/ruby/bin/ruby

From: tamouse pontiki <tamouse.lists@gmail.com>
To: ruby-talk ML <ruby-talk@ruby-lang.org>
Date: 12/18/2013 01:06 AM
Subject: Re: simple, simple stuff
Sent by: "ruby-talk" <ruby-talk-bounces@ruby-lang.org>

tamouse m. wrote in post #1130882:

>> What is it complaining about "require?" Yeh, I've got "require"

there at

It might help if you pasted the script.

Uh, it's pretty big. But, here it is. Thanks.

Thanks -- it's not *that* long, but I guess I could have asked for the

head of the file instead... :))

#/Users/peterbailey/.rbenv/shims/ruby

It should be:

#!/Users/peterbailey/.rbenv/shims/ruby

if you actually do have a shim for ruby at that exact path. Type that at

the Terminal prompt to see.

This is what I use to start scripts:

#!/usr/bin/env ruby

and it picks up which ruby to run based upon the user's environment,

which defaults to the system ruby.

My shebank looks just like you suggest:
#!/Users/peterbailey/.rbenv/shims/ruby

If I were to use "#!/usr/bin/env ruby, would that still let me use the
latest Ruby that's in /users/peterbailey/.rbenv/shims/ruby ??

If so, then, yeh, I'll do that.

Thanks!

···

On Tue, Dec 17, 2013 at 12:58 PM, Peter Bailey <lists@ruby-forum.com> > wrote:

On Tue, Dec 17, 2013 at 11:22 AM, Peter Bailey <lists@ruby-forum.com> >>> wrote:

--
Posted via http://www.ruby-forum.com/\.

If what you have for your shebang matches exactly what you get when you
type `which ruby` at the command line, that should work. If you want to try
out the other, you can also type that exactly at the command line.

This is mine:

$ which ruby
/opt/rubies/ruby-2.0.0-p247/bin/ruby

$ /opt/rubies/ruby-2.0.0-p247/bin/ruby --version
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-darwin12.5.0]

$ /usr/bin/env ruby --version
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-darwin12.5.0]
I happen to be using chruby, but rbenv and rvm will work the same if it is
set up correctly, as will the system ruby. Chruby sets and exports the
following into the shell environment (which is what /usr/bin/env picks up
for the shebang command):

GEM_HOME=/Users/tamara/.gem/ruby/2.0.0
GEM_PATH=/Users/tamara/.gem/ruby/2.0.0:/opt/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0
GEM_ROOT=/opt/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0
RUBYOPT=
RUBY_ENGINE=ruby
RUBY_ROOT=/opt/rubies/ruby-2.0.0-p247
RUBY_VERSION=2.0.0
You should be able to find the same env vars with settings appropriate to
your setup.

···

On Thu, Dec 19, 2013 at 8:41 AM, Peter Bailey <lists@ruby-forum.com> wrote:

My shebank looks just like you suggest:
#!/Users/peterbailey/.rbenv/shims/ruby

If I were to use "#!/usr/bin/env ruby, would that still let me use the
latest Ruby that's in /users/peterbailey/.rbenv/shims/ruby ??

If so, then, yeh, I'll do that.

Thanks!