#!/bin/env ruby require 'optparse' require 'HTTParty' options = {} OptionParser.new do |opts| opts.banner = 'aocinit.rb --help' opts.on('-y', '--year year', 'AoC year') do |year| options[:year] = year end opts.on('-d', '--day day', 'AoC day') do |day| options[:day] = day end opts.on('-c', '--cookie-file cookie', 'File containing your AoC cookie') do |cookie| options[:cookie] = cookie end end.parse! url = "https://adventofcode.com/#{options[:year]}/day/#{options[:day]}/input" options[:day] = '0' + options[:day] if options[:day].to_i < 10 newdir = "./day#{options[:day]}" cookie = File.read("./#{options[:cookie]}") @options = { headers: { 'Cookie' => "session=#{cookie}" } } input = HTTParty.get(url, @options) abort 'Day already initiated.' if Dir.exist?(newdir) Dir.mkdir(newdir) Dir.chdir(newdir) File.write('./input', input) File.write('./solution.rb', '#!/bin/env ruby')