class Shabang
Constants
- LANGS
- VERSION
Public Class Methods
parse(args)
click to toggle source
# File bin/shabang, line 12 def self.parse(args) options = OpenStruct.new options.language = 'ruby' options.path = 'bin/' opt_parser = OptionParser.new do |opts| opts.banner = "Usage: shabang [options] (or shebang [options])" opts.separator "" opts.separator "Specific options:" lang_list = LANGS.join(',') opts.on("--lang LANGUAGE", LANGS, "Select language", " (#{lang_list})") do |language| options.language = language end # Boolean switch. opts.on("-p", "--python", "Generate python shebang") do options.language = 'python' end opts.on("-P", "--perl", "Generate perl shebang") do options.language = 'perl' end opts.on("-j", "--node", "--javascript", "Generate node.js shebang") do options.language = 'node' end opts.on("-h", "--haskell", "Generate Haskell shebang") do options.language = 'runhaskell' end # opts.on("-f", "--filename", "specify filename here instead of as default argument") opts.on("-n", "--nobin", "Skip creating/putting in bin directory") do options.path = nil end opts.on('--path PATH', 'Path to place bin instead of ./bin/') do |path| options.path = path end opts.separator "" opts.separator "Common options:" # No argument, shows at tail. This will print an options summary. # Try it and see! opts.on_tail("-h", "--help", "Show this message") do puts opts exit end # Another typical switch to print the version. opts.on_tail("--version", "Show version") do puts VERSION exit end end opt_parser.parse!(args) options end