added part numbers to everything
diff --git a/bbb_cape/schematic/generate_mouser_bom.rb b/bbb_cape/schematic/generate_mouser_bom.rb
new file mode 100755
index 0000000..8c2c0cd
--- /dev/null
+++ b/bbb_cape/schematic/generate_mouser_bom.rb
@@ -0,0 +1,54 @@
+#!/usr/bin/env ruby
+
+# This generates something designed to be copied into Mouser's BOM creation
+# copy/paste box. It turns out that it's usually easier to just manually add
+# everything to your cart with the "EZBuy" thingie, but it's still a reasonable
+# format.
+#
+# Usage: generate_mouser_bom.rb FILE [COPIES]
+
+lines = File.open(ARGV[0]) do |f|
+  lines = f.readlines
+  lines.shift
+  lines.collect do |line|
+    line.split(', ')
+  end
+end
+
+$parts = {}
+
+def print_part(pn_string)
+	#puts pn + '|1'
+	pn = pn_string.intern
+	if $parts[pn]
+		$parts[pn] = $parts[pn] + 1
+	else
+		$parts[pn] = 1
+	end
+end
+
+lines.each do |line|
+	pn = line[4]
+	if pn.index(';')
+		parts = pn.split('; ')
+		parts.each do |part_string|
+			part = part_string.match(/(.+) x([0-9]+)?/)
+			if part
+				name = part[1]
+				number = part[2]
+				number.to_i.times do
+					print_part name
+				end
+			else
+				print_part part_string
+			end
+		end
+	else
+		print_part pn unless pn.empty?
+	end
+end
+
+times = (ARGV[1] || 1).to_i
+$parts.each do |pn, number|
+	puts "#{pn}|#{number * times}"
+end