views:

58

answers:

2

How would I go about creating an AppleScript command that when I just run the script (or double click it in Finder?), it would run a set of terminal commands? The set of commands completely remove MySQL, and it has become a pain to constantly write them out. The commands are:

sudo rm /usr/local/mysql
sudo rm -rf /usr/local/mysql*
sudo rm -rf /Library/StartupItems/MySQLCOM
sudo rm -rf /Library/PreferencePanes/My*
sudo rm -rf /Library/Receipts/mysql*
sudo rm -rf /Library/Receipts/MySQL*
sudo rm /etc/my.cnf

There is also another command sudo nano /etc/hostconfig that opens a file and I need to delete a line from the file, but that seems like it'd be too hard to code, so I guess I can do that by hand. But it would be a huge help to do this automatically with a single script.

Would it just be a bunch of these commands?

do shell script (...)

Thanks, Hristo

+3  A: 

Yes, you would use do shell script.

However, for the commands where you execute as super user (sudo) you would instead use with administrator privileges. So, for sudo rm /usr/local/mysql you'd do:

do shell script "rm /usr/local/mysql" with administrator privileges

If your list of commands is long, then it might just be easier to put all your commands into a single shell script file, and then execute that shell script using do shell script:

do shell script "/path/to/shell/script" with administrator privileges
macatomy
when I do `do shell script "rm /usr/local/mysql" with administrator privileges`, it gives me an error and tells me that `/usr/local/mysql` is a directory. That is actually a symbolic link to a different directory... what is the problem?
Hristo
try `rm -rf /usr/local/mysql`
macatomy
I did. That seemed to work. Thanks!
Hristo
+4  A: 

You don't actually need to use AppleScript for this - just put all the shell commands in a text file and give it a .command suffix - this will make it double-clickable in the Finder.

Paul R
Thanks. I didn't know about this.
Hristo
The `.command` suffix isn't quite enough -- you also have to include a shebang (i.e. add `#!/bin/bash` as the first line of the text file) and add execute permission to the file (i.e. run `chmod +x /path/to/file.command`). BTW, the big advantage of using this vs. an AppleScript is that it runs in Terminal, so you can actually interact with the script (very important if you want to use e.g. `nano` to edit a file).
Gordon Davisson
@Gordon: yes, good point, I should have said that it needs to be an executable shell script with a shebang line.
Paul R