30 lines
943 B
Ruby
30 lines
943 B
Ruby
|
#!/bin/env ruby
|
||
|
require 'optparse'
|
||
|
require 'HTTParty'
|
||
|
|
||
|
options = Hash.new
|
||
|
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.exists?(newdir)
|
||
|
Dir.mkdir(newdir)
|
||
|
Dir.chdir(newdir)
|
||
|
File.write('./input', input)
|
||
|
File.write('./solution.rb', "#!/bin/env ruby")
|