Add helper scripts
Change-Id: I196523408d195aa73a7d47b0b6ea9e800bcf7f4e
diff --git a/motors/big_schematic/next_refdes.rb b/motors/big_schematic/next_refdes.rb
new file mode 100755
index 0000000..68e302a
--- /dev/null
+++ b/motors/big_schematic/next_refdes.rb
@@ -0,0 +1,46 @@
+#!/usr/bin/env ruby
+
+require './gschem_file'
+
+if ARGV.size < 2
+ puts "Usage: next_refdes.rb file.sch BASE [quantity]"
+ exit 1
+end
+
+filenames = ARGV.select do |name|
+ name.include? '.'
+end
+leftover = ARGV - filenames
+
+refdes_pattern = /^refdes=(.+)$/
+this_pattern = /^#{leftover[0]}(\d+)$/
+used = []
+
+get_schematic_filenames(filenames).each do |name|
+ File.open(name, 'r') do |f|
+ f.readlines.each do |line|
+ match = refdes_pattern.match(line)
+ if match
+ refdes = this_pattern.match(match[1])
+ if refdes
+ used.push(refdes[1].to_i)
+ end
+ end
+ end
+ end
+end
+
+if leftover.length > 1
+ todo = leftover[1].to_i
+else
+ todo = 1
+end
+
+i = 1
+while todo > 0
+ if !used.include?(i)
+ puts "#{leftover[0]}#{i}"
+ todo -= 1
+ end
+ i += 1
+end