#!/usr/bin/perl
#
# Emit a script to fix the use of obsolete parts, where possible.
#
# Make sure we are editing the right drawing.
$dirty = "";
sub dirty {
local($f) = @_;
if ($dirty ne $f) {
&clean;
print "SET CONFIRM YES;\n";
print "EDIT '\$HOME/eagle/projects/$f';\n";
print "SET CONFIRM OFF;\n";
$dirty = $f;
}
}
#
# Finish editing a drawing.
sub clean {
if ($dirty) {
print "SET CONFIRM YES;\n";
print "WRITE '\$HOME/eagle/projects/$dirty';\n";
print "SET CONFIRM OFF;\n";
$dirty = "";
}
}
#
# First, obtain the LBR search path for Eagle.
@lbrdir = ("C:/Users/Vince/Documents/eagle/lbr", "C:/Program Files (x86)/EAGLE-6.6.0/lbr");
#
# Next, iterate over the libraries, looking for devicesets.
%dset = ();
foreach $lbrdir (@lbrdir) {
opendir(DIR, $lbrdir) || die "$lbrdir: $!";
while (($l = readdir(DIR))) {
next unless $l =~ /[.]lbr$/;
$lbr = "$lbrdir/$l";
open(INPUT, $lbr) || do {
warn "$lbr: $!";
next;
};
# Skip libraries that aren't converted yet.
$xml = ;
if ($xml !~ /^<[?]xml /) {
# warn "$lbr: not converted\n";
next;
}
$lbr =~ m:([^/]*).lbr$:;
$lname = $1;
while () {
# Should note packages too.
next unless /^) {
next unless /