blob: 68e302a55a535999cd497a908a9260ad1e7dcc1c [file] [log] [blame]
Brian Silverman8fa2aad2017-06-10 16:45:30 -07001#!/usr/bin/env ruby
2
3require './gschem_file'
4
5if ARGV.size < 2
6 puts "Usage: next_refdes.rb file.sch BASE [quantity]"
7 exit 1
8end
9
10filenames = ARGV.select do |name|
11 name.include? '.'
12end
13leftover = ARGV - filenames
14
15refdes_pattern = /^refdes=(.+)$/
16this_pattern = /^#{leftover[0]}(\d+)$/
17used = []
18
19get_schematic_filenames(filenames).each do |name|
20 File.open(name, 'r') do |f|
21 f.readlines.each do |line|
22 match = refdes_pattern.match(line)
23 if match
24 refdes = this_pattern.match(match[1])
25 if refdes
26 used.push(refdes[1].to_i)
27 end
28 end
29 end
30 end
31end
32
33if leftover.length > 1
34 todo = leftover[1].to_i
35else
36 todo = 1
37end
38
39i = 1
40while todo > 0
41 if !used.include?(i)
42 puts "#{leftover[0]}#{i}"
43 todo -= 1
44 end
45 i += 1
46end