Fog Creek Software
Discussion Board

Knowledge Base
Terry's Tips
Darren's Tips

Handling of external command line post-publish

I am trying to find out how, exactly, CityDesk handles the external program that can be run after the site is published to a particular publishing location.

CityDesk says the line makred "After copy:" in the Publishing Location/Run External Programs dialog should contain "a single command line to run before copying files."

* What I expected: A "single command line" is any command I can execute successfully from the Windows 2000 "Run" dialog. Thus, entering the text:

"E:/ryan/ content/delta-up.cmd" "" "public_html/citydesk.xml" "mypasswordhere"

into the CityDesk "After copy:" dialog would successfully upload my site over SCP. (Delta-up is a slightly modified version of the delta-up written by Prasenjeet Dutta and available at  .)

* What happened: CityDesk published my site to the hard drive, a command window flashed open and closed, and CityDesk reported "Waiting for external program: Done." *But my site had not updated.* I entered the previously-referenced text (starting with "E:\ryan") into the Windows 2000 Run dialog and my site uploaded flawlessly and without any interaction on my part. This took about 20 seconds.

As I would greatly prefer to have this command line run by CityDesk automatically, I am wondering what I need to do to get it to work correctly under CityDesk. I have tried removing the quote marks from the arguments passed to delta-up, but this produced the same result.

Further, I am wondering if there is any way to see what flashes in the command window before it disappears. CityDesk seems to open and close it in a flash. This might help me debug the situation myself.

Thanks for any help.

Ryan Tate
Thursday, January 1, 2004

How about you create a batch file (remember those?) for all your commands and have CD call the batch file.  The last line of the batch file should be "pause" (no quotes).  With the pause command you call look at all the output produced by your command lines.

Hope that helps....


Jeff Kolker
Friday, January 2, 2004

Good advice. Shove the whole thing in a one line something.bat file, append a line containing the word "pause",  and run

cmd /c something.bat

as your command line instead.

Joel Spolsky
Tuesday, January 6, 2004

*  Recent Topics

*  Fog Creek Home