filename = ARGV[0]

src = File.open(filename)
dest = nil

puts("Splitting #{filename}")

lines_to_go = 0
lines_per_file = 250000
file_num = -1
while (l = src.gets) do
   # lines per file reached. close the current file and open a new one
   #
   if (lines_to_go == 0)
      lines_to_go = lines_per_file
      file_num += 1
      dest.close if (dest)
      df = filename + "." + file_num.to_s 
      puts("Creating #{df}")
      dest = File.open(df, "w+")
   end

   # Write the line to the dest file
   # 
   dest.puts(l)
   lines_to_go -= 1
end
puts("Done!")
dest.close if (dest)
