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