On Nov 24, 2007, at 18:11, Juan Manuel Palacios wrote:
On Nov 24, 2007, at 6:59 PM, Ryan Schmidt wrote:
Got the database created, a user created, edited the script to point to a password file, changed the spam lovers to me, ran make. Am now trying to run the script.
$ env tclsh PortIndex2MySQL
No need to do this, the script already has a "#!/usr/bin/env tclsh" shebang (you can run it as "./PortIndex2MySQL").
I couldn't, because "make" does not set the execute bit on PortIndex2MySQL. "make" should probably do that, shouldn't it?
It tickles my hard drive for awhile, then ends with no output.
$ echo $? 1 $
So it's failing but I don't know why. I see there should be ui_error output on failures. How can I see it?
The script creates a /tmp/portsdb.log file where all runtime activity is logged and then piped to the /usr/sbin/sendmail program to get it through to $SPAM_LOVERS, so you might want to try to find that file.
In any case, you should first run the script from the shell before installing it for launchd. Assuming I didn't introduce any bugs in my recent edits, all possible runtime failures should be in the contents of that log file and then in your mailbox (in the case of these "accounted for failures" --like a failure to connect to the mysqld server or no password file found--, the script cleans up after itself upon exit and removes everything it creates, including the log file); if I did introduce, say, a Tcl syntactic bug, then you should get a backtrace spill on your shell. Please let me know how it goes so that I can correct potential bugs.
/tmp/portsdb.log was not present; it must've gotten cleaned up automatically. I caught it with tail -f while the script was running and it said: [snip] rsync: mkstemp "/opt/local/var/macports/sources/rsync.macports.org/ release/base/.ChangeLog.Uw8VSO" failed: Permission denied (13) rsync: mkstemp "/opt/local/var/macports/sources/rsync.macports.org/ release/base/config/.RELEASE_URL.hbE1ot" failed: Permission denied (13) rsync: mkstemp "/opt/local/var/macports/sources/rsync.macports.org/ release/base/config/.dp_version.TYaMkG" failed: Permission denied (13) [snip] So it's trying to do a selfupdate and failing because it's not root. Running it as root got me past that, though I'd rather not have to run it as root. I'll selfupdate my MacPorts myself when I feel like it. :) Next error encountered was this: Error: CHILDSTATUS 17126 1: ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (61) True: I have networking support deliberately disabled on my MySQL so that only local connections are possible. Changing "set dbhost 127.0.0.1" to "set dbhost localhost" fixed it, and now I have the data in my MySQL database and will turn my attention to the PHP files. ("localhost" and "127.0.0.1" are not equivalent to MySQL. The former means "use the socket file and bypass the network stack" and is supposed to be faster, while the latter accesses the network stack as it would for any other IP address.)