blob: 38d0f0e6fbfb0ebf1399a954295790631e938e57 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
#!/usr/bin/env ruby
arg = (ARGV.first || "").chomp.downcase
def run(day)
puts "Day #{day[3..4]}:"
runpart(day, 1) if File.exists?("#{day}/part1")
runpart(day, 2) if File.exists?("#{day}/part2")
end
def runpart(day, part)
print " Part #{part}: "
if File.exists?("#{day}/part#{part}.input") then
puts `#{day}/part#{part} < #{day}/part#{part}.input`
elsif File.exists?("#{day}/input") then
puts `#{day}/part#{part} < #{day}/input`
else
puts "Missing input file"
end
end
if arg != "" then
if arg == "all" then
#run all
days = Dir.entries('.').select{|d|d=~/^day/}
days.each do |day|
run day
end
else
#run specified day
arg = arg.to_i
day = "day%02d" % arg
run day
end
else
#run today
arg = Time.now.day
day = "day%02d" % arg
run day
end
|