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 Content-Type: text/plain; charset="utf-8" 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