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

Filed under:
|

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

Related posts about macosx

Related posts about packagemaker