Sha256: b7307a9fb3f4aca368fa8ad0480ef394c8977fa814dbed78db4b5bd4e5b2131b

Contents?: true

Size: 1.07 KB

Versions: 7

Compression:

Stored size: 1.07 KB

Contents

#!/usr/bin/env ruby

require "run_ical"

require 'optparse'

Options = Struct.new(:date, :program, :output)

class Parser
  def self.parse(options)
    args = Options.new

    opt_parser = OptionParser.new do |opts|
      opts.banner = "Usage: run_ical [options]"

      opts.on("-dDATE", "--date=DATE", "Date of race") do |date|
        args.date = Date.parse(date)
      end

      opts.on("-pPROGRAM", "--program=PROGRAM", "Program to generate for") do |program|
        args.program = program
      end

      opts.on("-fOUTPUT", "--file=OUTPUT", "Where to output ical to") do |output|
        args.output = output
      end

      opts.on("-h", "--help", "Prints this help") do
        puts opts
        exit
      end
    end

    opt_parser.parse!(options)
    return args
  end
end

options = Parser.parse ARGV

raise(ArgumentError, "Missing date") if options.date.nil?
raise(ArgumentError, "Missing Program") if options.program.nil?

File.open(options.output || "./cal.ical", "w") do |file|
  file.write(RunIcal::Generator.generate(race_date: options.date, program: options.program))
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
run_ical-0.4.3 exe/run_ical
run_ical-0.4.2 exe/run_ical
run_ical-0.4.1 exe/run_ical
run_ical-0.4.0 exe/run_ical
run_ical-0.3.0 exe/run_ical
run_ical-0.2.0 exe/run_ical
run_ical-0.1.0 exe/run_ical