[TxMt] Re: odd pymate output bug
Dirk van Oosterbosch, IR labs
labs at ixopusada.com
Thu Nov 2 22:33:36 UTC 2006
On 2-nov-2006, at 6:32, Bill Bumgarner wrote:
> [...] There are three major features that I'd like to have right
> about now:
>
> (1) be able to trigger pymate (scriptmate or whatever the new thing
> is called) to run a sort of "designated driver script" at the root
> level of a project directory. Specifically: I'm editing a unit
> test in my testsuite/ subdirectory and I want to hit a single
> command sequence to cause the run-tests.py script (found in the top
> level "project" directory -- top level directory resulting from a
> 'mate .' at the command line) to be executed.
At least your first wish-feature can easily be done.
I just finished a (global) command, "attached" to my project, which
does something remotely connected.
It only runs if there is a special project variable saying so. It
restarts Apache and after that's been successful, it loads (or
refreshes) a "designated" test url.
It uses a project variable ($MY_SITE_TEST ) to check whether it
actually should do it's thing. And then, if there is no project
variable $MY_SITE_TEST_URL given, it runs TextMateTestUrl.py, which
just outputs a url to test. I like to get that url from this python
script, for this allows me to add extra clauses (when to test what)
and lets me add comments to these test urls.
writing this script was fairly easy. The hardest part was to check on
the stopping and starting of Apache.
I'm not sure if this helps any to the discussion, but I thought it
was related, and I thought I share.
Below is the complete script, if this is usefull for anybody
best
dirk
if [[ "$MY_SITE_TEST" == 1 ]]; then
if [[ "$MY_SITE_TEST_RESTART_APACHE" == 1 ]]; then
#
# For restarting apache we need to first stop it
# and wait till all processes has been halted and
# then restart it again.
# We assume here that Apache has 4 (httpd) processes running
# when fully functional and active
#
"${TM_BUNDLE_SUPPORT}/apachectlUsingKeychain.sh" stop
for (( i = 0; i < 50 && $(echo $(ps -ax | grep [h]ttpd | wc -l))
> 0; i++ )); do
sleep .2;
done
if [ $(ps -ax | grep [h]ttpd | wc -l) == 0 ]; then
echo Apache has stopped
"${TM_BUNDLE_SUPPORT}/apachectlUsingKeychain.sh" start
for (( i = 0; i < 50 && $(echo $(ps -ax | grep [h]ttpd | wc -
l)) < 4; i++ )); do
sleep .2;
done
if [ $(ps -ax | grep [h]ttpd | wc -l) == 4 ]; then
echo Apache has started again
else
echo "$(date +%Y-%m-%d\ %H:%M:%S): Apache not yet fully
running. Run test aborted."
exit
fi
else
echo "$(date +%Y-%m-%d\ %H:%M:%S): Apache is still running.
Relaunch aborted."
exit
fi
fi
if [[ $MY_SITE_TEST_URL ]]; then
echo From the Project Preferences
T_URL=$MY_SITE_TEST_URL
else
echo From the TextMateTestUrl script
TPY=${TM_PYTHON:-pythonw}
T_URL=$(echo $("$TPY" "$TM_PROJECT_DIRECTORY/TextMateTestUrl.py"))
fi
osascript -e "tell app \"Safari\" to open location \"$T_URL\""
fi
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macromates.com/textmate/attachments/20061102/eb15c997/attachment.html>
More information about the textmate
mailing list