aboutsummaryrefslogtreecommitdiff
path: root/run
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