Running pagekite.py from the command line (without any args) will start a nice output starting with
Hello! This is pagekite.py v0.5.6d...
CTRL-C will close pagekite.
Running pagekite.py > out.log starts pagekite and shows nothing on the screen; CTRL-C stops pagekite; then looking at out.log there is nothing there.
So, if stdout is redirected, pagekite has no output. There are a few places where the code checks if _sys.stdout.isatty()_ and, in one of those places, it forces --nullui. This is almost certainly where the problem is, although the other checks for isatty would need to be addressed as well.
Please provide some mechanism -- perhaps a flag like --tty or --stdout -- so that calling apps can watch pagekite output for success, failure, and status messages. For me, having different behavior when stdout is redirected feels broken. I expected that stdout output would be the same regardless of whether stdout is tty or not. However, I realize maybe there's a good reason for the current design and that changing the default behavior may break existing use cases. A flag that lets me force the normal stdout UI would address my use case.
FWIW, I did try "shell", but that opened an interactive prompt that needed further input
>>> The PageKite Shell [CTRL+C = Cancel]
Press ENTER to fly your kites or CTRL+C to quit. Or, type some
arguments to and try other things. Type `help` for help.
$ pagekite.py
and didn't actually do what I needed. In fact, pagekite.py --shell > out.log produces the following error:
Traceback (most recent call last):
File "/home/joe/pageKite/pagekite.py", line 2110, in <module>
http_server=httpd.UiHttpServer)
File "<string>", line 3299, in Main
File "<string>", line 3328, in Shell
File "<string>", line 108, in AskQuestion
File "<string>", line 92, in DefaultOrFail
pagekite.common.ConfigError: Unanswerable question: pagekite.py
So... arguably that's the "correct" bug for this issue, depending on how you want to support the use case.
FWIW, I found this by watching stdout when invoking pagekite from node.js's child_process.spawn(). Pagekite runs as expected, but I never saw anything on child.stdout.