blob: 10194f70458797fb46310fb9917ecf30fab0cffc [file] [log] [blame]
Brian Silverman8fa2aad2017-06-10 16:45:30 -07001#!/usr/bin/env ruby
2
3require './gschem_file'
4
5if ARGV.size < 2
Brian Silverman51d307b2018-04-04 23:59:20 -04006 puts "Usage: next_refdes.rb file.sch BASE [quantity] [start]"
Brian Silverman8fa2aad2017-06-10 16:45:30 -07007 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
Brian Silverman51d307b2018-04-04 23:59:20 -040039if leftover.length > 2
40 start = leftover[2].to_i
41else
42 start = 1
43end
44
45i = start
Brian Silverman8fa2aad2017-06-10 16:45:30 -070046while todo > 0
47 if !used.include?(i)
48 puts "#{leftover[0]}#{i}"
49 todo -= 1
50 end
51 i += 1
52end