X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=P2flqSSB+Ru/K9HyAobhTq/JieLSLc5tCvqi1Qp+I6Y=; b=bokRUF/H2QhR8HmBR0k4bNuj5QU1On79mXCaEsUGaJ0amGDegCDYP3OWeunYQhFN0G GZE1gAuus/PWCqdXca3G3SEFnU20pgVQQCx+T5y5b3bSnGYsrvpfGIKl4zIeVYJvBNY8 u9RU+npz0D9VGaIebzrqevzO+XGhKlaZ0N6tE= MIME-Version: 1.0 In-Reply-To: <20111203133340.E09A181D541B@turkos.aspodata.se> References: <20111130211002 DOT 32B5081F6275 AT turkos DOT aspodata DOT se> <20111203133340 DOT E09A181D541B AT turkos DOT aspodata DOT se> Date: Sat, 3 Dec 2011 21:10:56 +0100 Message-ID: Subject: Re: [geda-user] Dynamic loading personal components (with subfolder) into the search component tree of gschem From: Luigi Salvatore Palese To: geda-user AT delorie DOT com Content-Type: multipart/mixed; boundary=bcaec51b9fd3f93bc504b335aefd Reply-To: geda-user AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: geda-user AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk --bcaec51b9fd3f93bc504b335aefd Content-Type: multipart/alternative; boundary=bcaec51b9fd3f93bc104b335aefb --bcaec51b9fd3f93bc104b335aefb Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On Sat, Dec 3, 2011 at 2:33 PM, Karl Hammar wrote: > Luigi: > > your script looks good but you have to manage the growing of the gafrc > file. > > Yes, I know. > > > Following your way, i'm making the scheme in attachment. > > Great. > > > Now the needed lines to start the guile script from gafrc are only as > > follow: > > ; > > (define geda-rchome-path (build-path (getenv "HOME") ".gEDA")) > > (load (build-path geda-rchome-path "local-symbols-library.scm")) > > It seems I can reduce thoose two lines to: > > (load "local-symbols-library.scm") > > ////// > > Appearantly, I can load stuff from my .gEDA dir without any special > magic, nice: > > $ tail -1 .gEDA/gafrc > (load "hello.scm") > $ cat .gEDA/hello.scm > (display "Hello World!\n") > $ gschem > Hello World! > ^C > $ > > Even better, if I do: > > (load-scheme-dir (build-path (getenv "HOME") ".gEDA/gafrc.d")) > > in my gafrc, gschem will load all my files in ~/.gEDA/gafrc.d. > > ////// > > > ; > > ; > > (component-library-add-tree "personal" "/usr/local/share/symbols") > > Adding: > > (component-library-add-tree "cvs" "$HOME/Net/cvs/ > cvs.gedasymbols.org/www/user") > > to my .gafrc didn't do any difference to the library browser, hmm. > To manage $HOME substitution you need getenv: (component-library-add-tree "cvs" (build-path (getenv "HOME") "/Net/cvs/ cvs.gedasymbols.org/www/user")) Also the "cvs" parameter needs to be a subfolder of "$HOME/Net/cvs/ cvs.gedasymbols.org/www/user". This is a my misunderstanding of your idea. > > ; > > ; > > > > At this point the folder name will be used as description in the tree: > > > > +Generic\ capacitors/ > > cap-1.sym > > +AVX\ Capacitors/ > > idc.sym > > > > I notice an interesting feature if the subfolders are named like: > > Generic\ capacitors/ > > Generic\ capacitors - AVX/ > > Generic\ capacitors - AVX - IDC/ > > > > The items will be displayed sequentially in the tree. > > Why not make the string look like "prefix/dir/subdir/.../", i.e., in > the example above it could be shown as: > > "personal/Generic capacitors" > "personal/Generic capacitors/AVX Capacitors" > > The version in attachment builds description in that way. Now the first parameter is a prefix which adds to the folders. The second parameter is the main folder and will be excluded from the description string. so as example a line such: (component-library-add-tree "cvs" (build-path (getenv "HOME") "/Net/cvs/ cvs.gedasymbols.org/www/user")) will produce as result: cvs/Capacitors cvs/Capacitors/AVX ... > Regards, > /Karl Hammar > > ----------------------------------------------------------------------- > Asp=F6 Data > Lilla Asp=F6 148 > S-742 94 =D6sthammar > Sweden > +46 173 140 57 > > > I need some more time to solve the $HOME substitution... any help is welcome. Regards, Luigi --bcaec51b9fd3f93bc104b335aefb Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable

On Sat, Dec 3, 2011 at 2:33 PM, Karl Ham= mar <karl AT aspodata DOT se> wrote:
Luigi:
> your script looks good but you have to manage the growing of the = gafrc file.

Yes, I know.

> Following your way, i'm making the scheme in attachment.

Great.

> Now the needed lines to start the guile script from gafrc are only as<= br> > follow:
> ;
> (define geda-rchome-path (build-path (getenv "HOME") ".= gEDA"))
> (load (build-path geda-rchome-path "local-symbols-library.scm&quo= t;))

It seems I can reduce thoose two lines to:

(load "local-symbols-library.scm")

//////

Appearantly, I can load stuff from my .gEDA dir without any special
magic, nice:

=A0$ tail -1 .gEDA/gafrc
=A0(load "hello.scm")
=A0$ cat .gEDA/hello.scm
=A0(display "Hello World!\n")
=A0$ gschem
=A0Hello World!
=A0^C
=A0$

Even better, if I do:

=A0(load-scheme-dir (build-path (getenv "HOME") ".gEDA/gafrc= .d"))

in my gafrc, gschem will load all my files in ~/.gEDA/gafrc.d.

//////

> ;
> ;
> (component-library-add-tree "personal" "/usr/local/shar= e/symbols")

Adding:

=A0(component-library-add-tree "cvs" "$HOME/Net/cvs/cvs.gedasymbols.= org/www/user")

to my .gafrc didn't do any difference to the library browser, hmm.
<= /blockquote>


To manage $HOME substitution you need getenv:
= =A0 (component-library-add-tree "cvs" (build-path (getenv "H= OME") "/Net/cvs/cvs.gedasymbols.org/www/user"))


Also the "cvs" parameter needs to be a subfolder of "= ;$HOME/Net/cvs/cvs.gedasymbols.org/www/user".
This is a my misunderstan= ding of your idea.


> ;
> ;
>
> At this point the folder name will be used as description in the tree:=
>
> +Generic\ capacitors/
> =A0 =A0 =A0 =A0 =A0cap-1.sym
> =A0+AVX\ Capacitors/
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0idc.sym
>
> I notice an interesting feature if the subfolders are named like:
> Generic\ capacitors/
> =A0 =A0 Generic\ capacitors - AVX/
> =A0 =A0 =A0 =A0 Generic\ capacitors - AVX - IDC/
>
> The items will be displayed sequentially in the tree.

Why not make the string look like "prefix/dir/subdir/.../",= i.e., in
the example above it could be shown as:

"personal/Generic capacitors"
"personal/Generic capacitors/AVX Capacitors"


The version in attachment b= uilds description in that way.
Now the first parameter is a prefix whic= h adds to the folders.
The second parameter is the main folder and will= be excluded from the description string.

so as example a line such:
(component-library-add-tree "cvs&quo= t; (build-path (getenv "HOME") "/Net/cvs/cvs.gedasymbols.org/www/user= "))

will produce as result:
cvs/Capacitors
cvs/Capacitors/AVX
...<= br>=A0
Regards,
/Karl Hammar

-----------------------------------------------------------------------
Asp=F6 Data
Lilla Asp=F6 148
S-742 94 =D6sthammar
Sweden
+46 173 140 57



I need some more time to solve the $HOME= substitution... any help is welcome.


Regards,
Luigi
--bcaec51b9fd3f93bc104b335aefb-- --bcaec51b9fd3f93bc504b335aefd Content-Type: text/x-scheme; charset=US-ASCII; name="local-symbols-library.scm" Content-Disposition: attachment; filename="local-symbols-library.scm" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gvr245pc1 OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC0qLVNjaGVtZS0qLQo7ICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CjsgICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKOyAgICB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNl LCBvcgo7ICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCjsKOyAgICBUaGlz IHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwKOyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgo7ICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKOyAgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm b3IgbW9yZSBkZXRhaWxzLgo7CjsgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKOyAgICBhbG9uZyB3aXRoIHRoaXMgcHJv Z3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KOwo7IENv cHlyaWdodCAoQykgMjAxMSAgTC5TLlAuIDx1bHRyYWJpdEBnbWFpbC5jb20+CjsKKHVzZS1tb2R1 bGVzIChpY2UtOSBmdHcpKQo7OzsKOzs7IEFkZCB0aGUgZGVmYXVsdCBjb21wb25lbnQgbGlicmFy aWVzCjs7Owo7KGRlZmluZSBnZWRhLXJjaG9tZS1wYXRoIChidWlsZC1wYXRoIChnZXRlbnYgIkhP TUUiKSAiLmdFREEiKSkKOyhkZWZpbmUgbG9jYWwtcGF0aCAoYnVpbGQtcGF0aCAiL3Vzci9sb2Nh bC9zaGFyZSIpKQo7KGRlZmluZSBsb2NhbC1zeW0tcGF0aCAoYnVpbGQtcGF0aCBsb2NhbC1wYXRo ICJzeW1ib2xzIikpCjsoZGVmaW5lIGxvY2FsLWZvb3RwcmludC1wYXRoIChidWlsZC1wYXRoIGxv Y2FsLXBhdGggImZvb3RwcmludHMiKSkKKGRlZmluZSBmb2xkZXJsaXN0ICcoKSkKKGRlZmluZSBi dWlsZC1zeW1ib2xzLWxpc3QKICAgICAgICAobGFtYmRhICAoZmlsZW5hbWUgc3RhdGluZm8gZmxh Z3MpCiAgICAgICAgICAgICAgICAoaWYgKGVxPyAoc3RyaW5nLT5zeW1ib2wgImRpcmVjdG9yeSIp IGZsYWdzKQogICAgICAgICAgICAgICAgICAgICAgICAoYmVnaW4gIAogICAgICAgICAgICAgICAg ICAgICAgICAoc2V0ISBmb2xkZXJsaXN0ICAKICAgICAgICAgICAgICAgICAgICAgICAgKGFwcGVu ZCBmb2xkZXJsaXN0CiAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0IGZpbGVuYW1lICkpKSkK ICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgKGVxPyAjdCAjdCkpCikK CihkZWZpbmUgY29tcG9uZW50LWxpYnJhcnktYWRkLXRyZWUKCShsYW1iZGEgKHN1YmZvbGRlciBt YWluZm9sZGVyKQoJCTsgQnVpbGRpbmcgdGhlIGxpc3Qgb2YgZm9sZGVycwoJCShzZXQhIG1haW5m b2xkZXIgKHN0cmluZy10cmltLXJpZ2h0IChzdHJpbmctdHJpbS1ib3RoIG1haW5mb2xkZXIgY2hh ci1zZXQ6d2hpdGVzcGFjZSkgI1wvKSkKICAgICAgICAJKGZ0dyBtYWluZm9sZGVyIGJ1aWxkLXN5 bWJvbHMtbGlzdCkKCShmb3ItZWFjaAoJCShsYW1iZGEgKGRpcikKCQkJKGNvbXBvbmVudC1saWJy YXJ5IGRpciAoc3RyaW5nLWFwcGVuZCBzdWJmb2xkZXIgKHN0cmluZy1jb3B5IGRpciAoc3RyaW5n LWxlbmd0aCBtYWluZm9sZGVyKSkpKQoJCSkKCSBmb2xkZXJsaXN0KQoJKQopCgo= --bcaec51b9fd3f93bc504b335aefd--