Sha256: 1c9fbe99c2dd1aea2b37612cbeba5c3a95fa372b7abeb982e979b0d42bc8d984

Contents?: true

Size: 1.49 KB

Versions: 3

Compression:

Stored size: 1.49 KB

Contents

#!/usr/bin/env ruby

require 'rubygems'
require 'commander'

program :name, 'commander'
program :version, Commander::VERSION::STRING
program :description, 'Commander utility program.'

command :init do |c|
	c.syntax = 'commander init <file>'
	c.summary = 'Initialize a commander template'
	c.description = 'Initialize an empty file with a commander template, allowing extremely quick creation of commader executables.'
	c.example 'Create a new file with a commander template.', 'commander init ./bin/my_executable'
	c.when_called do |args, options|
	  abort "Provide a filepath." if args.empty?
		name = ask 'Machine name of program: '
		description = ask 'Describe your program: '
		commands = ask 'List the sub-commands you wish to create: ', Array
		begin
      File.open(args.first, 'w') do |f|
        f.write <<-CODE
#!/usr/bin/env ruby

require 'rubygems'
require 'commander'
require '#{name}'

program :name, '#{name}'
program :version, #{name.camelcase}::VERSION::STRING
program :description, '#{description}'
 
CODE
        commands.each do |command|
          f.write <<-CODE
command :#{command} do |c|
  c.syntax = ''
  c.description = ''
  c.example 'description', 'command example'
  c.option '--some-switch', 'Some switch that does something'
  c.when_called do |args, options|
    # Do something or c.when_called #{name.camelcase}::Commands::#{command.camelcase}
  end
end

CODE
        end
       end
       say "Initialized template in #{args.first}"
		 rescue Exception => e
       abort e
		 end
	end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
visionmedia-commander-2.4.3 bin/commander
visionmedia-commander-2.4.4 bin/commander
visionmedia-commander-2.4.6 bin/commander