- Revision
- 33639
- Author
- jmpp@macports.org
- Date
- 2008-02-01 23:16:35 -0800 (Fri, 01 Feb 2008)
Log Message
* Use dscl(1) to detect the default shell for the installing user, rather than trying to infer it from the inherited environment
(which did not reflect the user's at all, as it is entirely imposed by Installer.app when the pkg is used in real life). Thanks
to Ryan on macports-dev for the original suggestion!
* Provide a little more information about the shell we detected.
NOTE: I tested this edited script through a test pkg on Leopard and it works, both when used from an account with a bash shell and
from one with a tcsh shell. If anyone cares to test on Tiger and/or Panther, they should contact me so I can hand them the pkg, thanks!
In any case, I'm feeling confident it'll work consistently this time round to detect the shell type, given the nature of the dscl operation.
As you can see from the diff in this commit, I used an alternate method to get the sole shell name (awk). But in any case, the all work and produce the same output, as discussed on IRC earlier today, it's only a matter of taste.
I've put together a test dmg that has the latest /branches/release_1_6/base/portmgr/dmg/postflight in it, available at the following URL:
Appreciate it if anyone has a chance to help me test it, per my commit log above. Tiger and Panther reports would be great!
Regards,...
-jmpp
PS: Note that the MacPorts code in the installer is not necessarily what 1.6.1 final will be, I exported a tarball off the branch some days ago (so it's definitely not current wrt trunk and may even not be current wrt the branch itself. I'm only interested here in the behavior of the postflight script when run from within Installer.app (which is what was crippling the $SHELL evn variable detection).