On Nov 16, 2011, at 16:54, [email protected] wrote:
> Revision: 87310
> http://trac.macports.org/changeset/87310
> Author: [email protected]
> Date: 2011-11-16 14:54:37 -0800 (Wed, 16 Nov 2011)
> Log Message:
> -----------
> group/php5pear-1.0.tcl:
> - Install a temporary pear installer into worksrcpath for each port.
> - This leaves a resident pear command for a later accomplishment.
>
> Modified Paths:
> --------------
> trunk/dports/_resources/port1.0/group/php5pear-1.0.tcl
With this commit it looks like you've gone to a 2-space-per-indent style from
our usual 4-space-per-indent. Ok, but you should add our standard modeline,
with the instances of 4 changed to 2. This will help some editors understand
that this is the style you want to use.
> + depends_lib path:bin/phpize:php5 port:php5-pear
Heads-up: once there are separate php54 php53 php52 ports as I'm planing,
something different will have to happen here, since there will no longer be any
port providing "phpize" (or "php").
> + if { "${php5pear.channel}" != "pear.php.net" } {
> + system "curl -s http://${php5pear.channel}/channel.xml -o
> ${worksrcpath}/channel.xml"
> + system "${php5pear.cmd-pre} ${php5pear.cmd-pear} ${php5pear.cmd-post}
> channel-add ${worksrcpath}/channel.xml"
> + system "${php5pear.cmd-pre} ${php5pear.cmd-pear} ${php5pear.cmd-post}
> config-set default_channel ${php5pear.channel}"
> }
I wonder if there's a way you could use pextlib's Tcl curl interface instead of
calling the curl command line program.
> + system "${php5pear.cmd-pre} ${php5pear.cmd-pear} ${php5pear.cmd-post}
> config-set php_dir ${php5pear.pearpath}"
> + system "${php5pear.cmd-pre} ${php5pear.cmd-pear} ${php5pear.cmd-post}
> config-set bin_dir ${php5pear.pearpath}/bin"
> + system "${php5pear.cmd-pre} ${php5pear.cmd-pear} ${php5pear.cmd-post}
> config-set doc_dir ${php5pear.pearpath}/docs"
> + system "${php5pear.cmd-pre} ${php5pear.cmd-pear} ${php5pear.cmd-post}
> config-set data_dir ${php5pear.pearpath}/data"
> + system "${php5pear.cmd-pre} ${php5pear.cmd-pear} ${php5pear.cmd-post}
> config-set www_dir ${php5pear.pearpath}/www"
> + system "${php5pear.cmd-pre} ${php5pear.cmd-pear} ${php5pear.cmd-post}
> config-set test_dir ${php5pear.pearpath}/tests"
> + system "${php5pear.cmd-pre} ${php5pear.cmd-pear} ${php5pear.cmd-post}
> config-show"
This kind of stuff looks like you *may* want to investigate the MacPorts base
"command" system. configure, build, destroot, etc. are all "commands" in
MacPorts, each of which has pre_args, args, post_args, env, as you know. You
can probably create your own commands and run them with "command_exec". That
*might* clean up some of this code, at least reduce some of the redundancy. (Or
it might introduce its own complications. :)) An example of running commands
with command_exec (though not creating entire new commands) is in the current
php5 port (though it will go away in the New PHP Order, coming soon to a
MacPorts near you).
> + # Remove all invisible "dot" files.
> + fs-traverse -ignoreErrors item "${destroot}${php5pear.instpath}" {
> + if {[string first . [file tail ${item}] 0] == 0} {
> + # Using system rm because I could not find a way to delete dot files
> with [file delete].
> + system "rm -R ${item}"
> + }
> }
Curious: what problems did you run into with [file delete]?
Note that traversing and looking for items starting with "." will of course
find the directory entries "." and "..", which you cannot remove, and which I'd
suspect [file delete] would complain about. "rm" should complain too, but it
might just be a warning that you never see. Note also that you can shorten
[file delete] to just [delete].
_______________________________________________
macports-dev mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macports-dev