PackageMaker install script for rxtx
Posted
by vinzenzweber
on Stack Overflow
See other posts from Stack Overflow
or by vinzenzweber
Published on 2010-04-09T20:47:34Z
Indexed on
2010/04/09
20:53 UTC
Read the original article
Hit count: 528
macosx
|packagemaker
I am using PackageMaker to create an installer for my application. During installation I need to run a bash script to properly install rxtx, a JNI library for serial port communication. This library needs to have the directory /var/lock in place with user "root" and group "uucp". The installation script also needs to add the current user to the group "uucp" for the lib to be able to write to /var/lock.
Now when I run my application installer the preinstall script is run as root. Therefore "whoami" returns root instead of the user who is actually running the installer. The result is that rxtx is not able to create lock files in /var/lock because the actual user was not added as a member to "uucp".
How can I get the user while my script is run by the installer. Or is it better to set the permissions for /var/lock to a different group maybe? Any suggestions are welcome!
!/bin/sh
curruser=whoami
logger "Setting permissions for /var/lock for user $curruser!"
if [ ! -d /var/lock ] then logger "Creating /var/lock!" sudo mkdir /var/lock fi
sudo chgrp uucp /var/lock sudo chmod 775 /var/lock
MacOSX 10.5 and later use dscl
if [ sudo dscl . -read /Groups/uucp GroupMembership | grep $curruser | wc -l = "0" ] then logger "Add user $curruser to /Groups/uucp!" sudo dscl . -append /Groups/uucp GroupMembership $curruser # to revert use: # sudo dscl . -delete /Groups/uucp GroupMembership $curruser else logger "GroupMembership of /var/lock not changed!" fi
© Stack Overflow or respective owner