Mail Archives: geda-user/2019/08/14/14:49:55
X-Authentication-Warning: | delorie.com: mail set sender to geda-user-bounces using -f
|
X-Recipient: | geda-user AT delorie DOT com
|
X-Mailer: | exmh version 2.8.0 04/21/2012 with nmh-1.6
|
X-Exmh-Isig-CompType: | comp
|
X-Exmh-Isig-Folder: | inbox
|
From: | karl AT aspodata DOT se
|
To: | geda-user AT delorie DOT com
|
Subject: | [geda-user] finding newer sym's and sch's
|
Mime-Version: | 1.0
|
Message-Id: | <20190814182737.C3124861347C@turkos.aspodata.se>
|
Date: | Wed, 14 Aug 2019 20:27:37 +0200 (CEST)
|
X-Virus-Scanned: | ClamAV using ClamSMTP
|
Reply-To: | geda-user AT delorie DOT com
|
To check wheter the changes I do to symbols and subsheets mess up
things for designs using them, I made two programs to find them, see
below.
Now, using git, the timestamps (mtime) don't tell us much after a few
checkin and checkout cycles, so I tried to use the commit time insted,
where possible.
Comments and whishlists welcome.
///
First off, I needed something to give me the library paths:
http://aspodata.se/git/openhw/bin/geda_lib.scm
It runs the .gEDA/gafrc and any possible ./gafrc file and prints out
the paths found. Example:
$ cat ~/.gEDA/gafrc
(define home (getenv "HOME"))
;(load-scheme-dir (build-path home ".gEDA/gafrc.d"))
(define (cl str) (if (access? str R_OK) (component-library str)))
(define (sl str) (if (access? str R_OK) (source-library str)))
(component-library-search "/Net/cvs/cvs.gedasymbols.org/www/user" "cvs")
(component-library-search (build-path home "git/openhw/share/gschem") "lcl")
(cl "_symbol")
(cl "sym")
(cl "include")
(component-library ".")
(source-library "${HOME}/git/openhw/share/gschem/_sub_page")
(sl "_sub_page")
(sl "include")
(source-library ".")
$ geda_lib.scm
cs /Net/cvs/cvs.gedasymbols.org/www/user
cs /home/karl/git/openhw/share/gschem
c include
c .
s ${HOME}/git/openhw/share/gschem/_sub_page
s include
s .
where
cs = component search patch
c = component dir
cr = reset (empty) component dir and search paths
s = source dir
sr = reset source dirs
///
That ouput is read by my other program:
http://aspodata.se/git/openhw/bin/chk_newer.pl
which scans (grep) the sch file and tries to find out if the refrence
is newer or older than the given file. And it does so recursively.
Examples:
. the first one is possible hopelessly outdated
$ chk_newer.pl regulator.sch
Checking: regulator.sch
Newer: 48169412 ~/git/openhw/share/gschem/_semiconductor/78xx.sym
Newer: 48168890 ~/git/openhw/share/gschem/_graphical/A3liggande.sym
Newer: 10826966 ~/git/openhw/share/gschem/_electromechanical/arm_jtag8.sym
Newer: 54028282 /usr/share/gEDA/sym/connector/connector3-2.sym
...
. the second one shows what happens when a file is changed:
$ chk_newer.pl stm32f100_rn2483.sch
Checking: stm32f100_rn2483.sch
Checking: ~/git/openhw/share/gschem/_sub_page/driver_rs232_2_5V.max232.sch
$ echo >> ~/git/openhw/share/gschem/_graphical/A4liggande.sym
$ chk_newer.pl stm32f100_rn2483.sch
Checking: stm32f100_rn2483.sch
Newer: 79228 ~/git/openhw/share/gschem/_graphical/A4liggande.sym
Checking: ~/git/openhw/share/gschem/_sub_page/driver_rs232_2_5V.max232.sch
$
The numbers between "Newer:" and the file name, are the age differece
in seconds, perhaps not that interesting.
Regards,
/Karl Hammar
- Raw text -