Difference between revisions of "Skel.rb"
Jump to navigation
Jump to search
PeterHarding (talk | contribs) |
PeterHarding (talk | contribs) |
||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
= | =Skeleton Ruby Script= | ||
See - http://www.ruby-doc.org/stdlib-1.9.3/libdoc/getoptlong/rdoc/GetoptLong.html | See - http://www.ruby-doc.org/stdlib-1.9.3/libdoc/getoptlong/rdoc/GetoptLong.html | ||
Line 7: | Line 7: | ||
#!/usr/bin/env ruby | #!/usr/bin/env ruby | ||
require 'getoptlong' | require 'getoptlong' | ||
# The parameters can be in any order | |||
unless ARGV.length >= 0 | |||
puts "Usage: skel.rb [-v] [-d] -n<port_no> -u<user_name> -p<password>" | |||
exit | |||
end | |||
opts = GetoptLong.new( | host_name = port_no = user_name = password = '' | ||
[ "--hostname", "-h", GetoptLong::REQUIRED_ARGUMENT ], | |||
[ "--port", "-n", GetoptLong::REQUIRED_ARGUMENT ], | # specify the options we accept and initialize the option parser | ||
[ "--username", "-u", GetoptLong::REQUIRED_ARGUMENT ], | |||
[ "--pass", "-p", GetoptLong::REQUIRED_ARGUMENT ] | verbose_flg = false | ||
) | debug_level = 0 | ||
opts = GetoptLong.new( | |||
[ "--hostname", "-h", GetoptLong::REQUIRED_ARGUMENT ], | |||
[ "--port", "-n", GetoptLong::REQUIRED_ARGUMENT ], | |||
[ "--username", "-u", GetoptLong::REQUIRED_ARGUMENT ], | |||
[ "--pass", "-p", GetoptLong::REQUIRED_ARGUMENT ], | |||
[ "--verbose", "-v", GetoptLong::NO_ARGUMENT ], | |||
[ "--inc-debug-level", "-d", GetoptLong::NO_ARGUMENT ] | |||
[ "--set-debug-level", "-D", GetoptLong::REQUIRED_ARGUMENT ] | |||
) | |||
# process the parsed options | |||
opts.each do |opt, arg| | |||
case opt | |||
when '--hostname' | |||
host_name = arg | |||
when '--port' | |||
port_no = arg | |||
when '--username' | |||
user_name = arg | |||
when '--pass' | |||
password = arg | |||
when '--inc-debug-level' | |||
debug_level += 1 | |||
when '--set-debug-level' | |||
debug_level = int(arg) | |||
when '--verbose' | |||
verbose_flg = true | |||
end | |||
end | |||
puts "verbose_flg = #{verbose_flg}" | |||
puts "debug_level = #{debug_level}" | |||
if ARGV.length >= 1 | |||
dir = ARGV.shift | |||
Dir.chdir(dir) | |||
end | |||
puts Dir.pwd | |||
# Dir["config.?"] #=> ["config.h"] | |||
# Dir.glob("config.?") #=> ["config.h"] | |||
# Dir.glob("*.[a-z][a-z]") #=> ["main.rb"] | |||
# Dir.glob("*.[^r]*") #=> ["config.h"] | |||
# Dir.glob("*.{rb,h}") #=> ["main.rb", "config.h"] | |||
# Dir.glob("*") #=> ["config.h", "main.rb"] | |||
# Dir.glob("*", File::FNM_DOTMATCH) #=> [".", "..", "config.h", "main.rb"] | |||
rbfiles = File.join("**", "*.rb") | |||
Dir.glob(rbfiles) | |||
</pre> | </pre> | ||
[[category:Ruby]] | [[category:Ruby]] | ||
[[Category:Examples]] | [[Category:Examples]] |
Latest revision as of 10:56, 30 July 2012
Skeleton Ruby Script
See - http://www.ruby-doc.org/stdlib-1.9.3/libdoc/getoptlong/rdoc/GetoptLong.html
#!/usr/bin/env ruby require 'getoptlong' # The parameters can be in any order unless ARGV.length >= 0 puts "Usage: skel.rb [-v] [-d] -n<port_no> -u<user_name> -p<password>" exit end host_name = port_no = user_name = password = '' # specify the options we accept and initialize the option parser verbose_flg = false debug_level = 0 opts = GetoptLong.new( [ "--hostname", "-h", GetoptLong::REQUIRED_ARGUMENT ], [ "--port", "-n", GetoptLong::REQUIRED_ARGUMENT ], [ "--username", "-u", GetoptLong::REQUIRED_ARGUMENT ], [ "--pass", "-p", GetoptLong::REQUIRED_ARGUMENT ], [ "--verbose", "-v", GetoptLong::NO_ARGUMENT ], [ "--inc-debug-level", "-d", GetoptLong::NO_ARGUMENT ] [ "--set-debug-level", "-D", GetoptLong::REQUIRED_ARGUMENT ] ) # process the parsed options opts.each do |opt, arg| case opt when '--hostname' host_name = arg when '--port' port_no = arg when '--username' user_name = arg when '--pass' password = arg when '--inc-debug-level' debug_level += 1 when '--set-debug-level' debug_level = int(arg) when '--verbose' verbose_flg = true end end puts "verbose_flg = #{verbose_flg}" puts "debug_level = #{debug_level}" if ARGV.length >= 1 dir = ARGV.shift Dir.chdir(dir) end puts Dir.pwd # Dir["config.?"] #=> ["config.h"] # Dir.glob("config.?") #=> ["config.h"] # Dir.glob("*.[a-z][a-z]") #=> ["main.rb"] # Dir.glob("*.[^r]*") #=> ["config.h"] # Dir.glob("*.{rb,h}") #=> ["main.rb", "config.h"] # Dir.glob("*") #=> ["config.h", "main.rb"] # Dir.glob("*", File::FNM_DOTMATCH) #=> [".", "..", "config.h", "main.rb"] rbfiles = File.join("**", "*.rb") Dir.glob(rbfiles)