[48384] trunk/base/src/port1.0/portutil.tcl

Rainer Müller raimue at macports.org
Fri Mar 20 10:14:04 PDT 2009


raimue at macports.org wrote:
> Revision: 48384
>           http://trac.macports.org/changeset/48384
> Author:   raimue at macports.org
> Date:     2009-03-20 09:52:08 -0700 (Fri, 20 Mar 2009)
> Log Message:
> -----------
> port1.0/portutil.tcl:
> New handle_option-replace proc which allows to apply strsed on an option
> 
> Modified Paths:
> --------------
>     trunk/base/src/port1.0/portutil.tcl
> [...]

A little bit of explanation on this commit. We often have stuff like the
following lines in our Portfiles, especially in variants:

  configure.args-delete --disable-foo
  configure.args-append --enable-foo

Writing these lines is cumbersome in my opinion. So I created a similar
*-replace which allows to apply strsed replaces on an option:

  configure.args-replace s/--disable-foo/--enable-foo/

Note this is not real sed, only a small subset is supported (lacking
documentation). You can only do "s/foo/bar/" which replaces a single
instance of the search pattern or "g/foo/bar/" to make the replace
global, i.e. apply on all occurrences. It is also possible to leave out
's' or 'g' which behaves like 's', but can also be used for deletes like
"/foo/". The delimiter, which is "/" above, can be chosen freely. If you
want to play with strsed or test your replaces do what you expect, use [1].

I hope Portfile authors will find *-replace as useful as I do.

Rainer

[1]
http://trac.macports.org/wiki/CommittersTipsAndTricks#DoExplorativeProgrammingintclshwithReadlineSupport


More information about the macports-dev mailing list