[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Python / ruby command line script?

Paatsch, Bernd

1/24/2006 5:09:00 PM

Hello,

I am a newbie to Ruby. However I have used python a little bit.
I like to convert my python scripts to ruby. One of them is a command line
script taking input and switches.
Is there something equivalent in ruby?


"""
Generate something
Usage: python xyz.py [options] [source] [destination]
Options:
-h, --help show help
Examples: xyz.py input.csv output.html
"""

def main(argv):
"""Main Entry Point """
try:
opts, args = getopt.getopt(argv, "h", ["help"])
except getopt.GetoptError:
usage()
sys.exit(2)

for opt, arg in opts: if opt in ("-h", "--help"):
usage() sys.exit()

try:
source = sys.argv[1]
global destination
destination = sys.argv[2]
except:
usage()
sys.exit(2)

seleniumHtmlGenerator(source)



if __name__ == "__main__":
main(sys.argv[1:])


















3 Answers

Daniel Schüle

1/24/2006 7:55:00 PM

0

Paatsch, Bernd wrote:
> Hello,
>
> I am a newbie to Ruby. However I have used python a little bit.
> I like to convert my python scripts to ruby. One of them is a command line
> script taking input and switches.
> Is there something equivalent in ruby?



> """
> Generate something
> Usage: python xyz.py [options] [source] [destination]
> Options:
> -h, --help show help
> Examples: xyz.py input.csv output.html
> """
>
> def main(argv):
> """Main Entry Point """
> try:
> opts, args = getopt.getopt(argv, "h", ["help"])
> except getopt.GetoptError:
> usage()
> sys.exit(2)
>
> for opt, arg in opts: if opt in ("-h", "--help"):
> usage() sys.exit()
>
> try:
> source = sys.argv[1]
> global destination

you script is incomplete, there is no "destination"
at module namespace

> destination = sys.argv[2]
> except:
> usage()
> sys.exit(2)
>
> seleniumHtmlGenerator(source)

and no "seleniumHtmlGenerator" function
"usage" Function is missed to
on closer look "import getopt,sys" are missed too

>
>
> if __name__ == "__main__":
> main(sys.argv[1:])

well, ARGV (alias to $*) are you sys.argv[1:]
sys.argv[0] is in $0

I don't know whether Ruby has getopt class or file
(what is it called properly?) which you can "require"

clearly seleniumHtmlGenerator does the main Job
nobody can know its internals and other things can be
translated straight forward

try:
except:

begin
rescue
end

hth, Daniel

boscomonkey

1/25/2006 1:22:00 AM

0

See this tutorial regarding parsing command line args in Ruby:


http://www.linuxdevcenter.com/pub/a/linux/2003/09/18/ruby_csv.h...

The "getoptlong" library has apparently been superceded by "optparse",
so Google that too.


Paatsch, Bernd wrote:
> Hello,
>
> I am a newbie to Ruby. However I have used python a little bit.
> I like to convert my python scripts to ruby. One of them is a command line
> script taking input and switches.
> Is there something equivalent in ruby?
>
>
> """
> Generate something
> Usage: python xyz.py [options] [source] [destination]
> Options:
> -h, --help show help
> Examples: xyz.py input.csv output.html
> """
>
> def main(argv):
> """Main Entry Point """
> try:
> opts, args = getopt.getopt(argv, "h", ["help"])
> except getopt.GetoptError:
> usage()
> sys.exit(2)
>
> for opt, arg in opts: if opt in ("-h", "--help"):
> usage() sys.exit()
>
> try:
> source = sys.argv[1]
> global destination
> destination = sys.argv[2]
> except:
> usage()
> sys.exit(2)
>
> seleniumHtmlGenerator(source)
>
>
>
> if __name__ == "__main__":
> main(sys.argv[1:])

Jim Freeze

1/25/2006 6:32:00 AM

0

Hi
On Jan 24, 2006, at 11:08 AM, Paatsch, Bernd wrote:

> Hello,
>
> I am a newbie to Ruby. However I have used python a little bit.
> I like to convert my python scripts to ruby. One of them is a
> command line
> script taking input and switches.
> Is there something equivalent in ruby?

Yes, but Ruby also has something much better - CommandLine -
it's the rails equivalent for commandline apps. :)

> Generate something
> Usage: python xyz.py [options] [source] [destination]
> Options:
> -h, --help show help
> Examples: xyz.py input.csv output.html

#!/usr/bin/env ruby
require 'rubygems'
require 'commandline'

class App < CommandLine::Application
def initialize
synopsis "[options] [source] [destination]"
option :help
expected_args :source :destination
end

def main
# your code here
end
end


> """
>
> def main(argv):
> """Main Entry Point """
> try:
> opts, args = getopt.getopt(argv, "h", ["help"])
> except getopt.GetoptError:
> usage()
> sys.exit(2)
>
> for opt, arg in opts: if opt in ("-h", "--help"):
> usage() sys.exit()
>
> try:
> source = sys.argv[1]
> global destination
> destination = sys.argv[2]
> except:
> usage()
> sys.exit(2)
>
> seleniumHtmlGenerator(source)
>
>
> if __name__ == "__main__":
> main(sys.argv[1:])


Jim Freeze