Not sure why it didn't work with Login shell selected, but I changed it to
⌘ command and invoked bash -l
or /bin/bash -l
to make it work the same way. Hope this helps anyone else who has the same problem!
As @laaph mentioned, if you just want to run bash commands, use a bash script.
There are, however, a few issues with your commands.
Your script has to look like:
#!/bin/sh
pushd ~/Library/Vidalia
rm vidalia.conf
unzip vidalia.conf.zip
popd
open /Applications/Vidalia.app
If you didn't change to the correct directory, unzip
would unzip the file into your home directory, or wherever you launched your script from.
There are ways to look for when an app quits, but in your case this seems useless, you're removing the .conf
whenever you launch the script anyway. But if you really want that, you could simply do:
#!/bin/sh
pushd ~/Library/Vidalia
rm vidalia.conf
unzip vidalia.conf.zip
popd
open -W /Applications/Vidalia.app
pushd ~/Library/Vidalia
rm vidalia.conf
popd
(This would make the script wait until you close the app, and then it'd delete the configuration file. Again though, this is useless and redundant if you'll be only launching the app with the script.)
Also, you could try a simpler solution: I assume that what you want is just to have the same vidalia.conf whenever you start the program. If that's the case, try just making the .conf
read-only.
Best Answer
Finally I found a solution using bash-preexec.
That utility have the following function:
precmd
Executed just before each prompt. Equivalent to PROMPT_COMMAND, but more flexible and resilient.To install bash-preexec:
Then I have to add the following to my .bash_profile:
Inside the
precmd
function is where I change the profile according to my needs.shouldChangeProfile
prevents unnecessary profile changes.