@@ -227,18 +227,29 @@ def _run_app(
227
227
run_app (import_name , args , environment )
228
228
229
229
@run .command ("serve" )
230
+ @click .argument ("command" )
230
231
@click .option ("-h" , "--host" , type = str , default = "localhost" , help = "Host to serve on" )
231
232
@click .option ("-p" , "--port" , type = int , default = 8000 , help = "Port of server" )
232
233
@click .option ("-t" , "--title" , type = str , default = "Textual App" , help = "Name of the app being served" )
233
234
@click .option ("-u" , "--url" , type = str , default = None , help = "Public URL" )
234
235
@click .option ("--dev" , type = bool , default = False , is_flag = True , help = "Enable debug mode" )
235
- @click .argument ("command" , nargs = - 1 , type = click .UNPROCESSED )
236
- def serve (host :str , port :int , title :str , url :str | None , dev :bool , command :tuple [str ]) -> None :
237
- """Run a local web server to serve the application. """
236
+
237
+ def serve (command :str , host :str , port :int , title :str , url :str | None , dev :bool ) -> None :
238
+ """Run a local web server to serve the application.
239
+
240
+ The command to run should be appended to "textual serve", and should include any python invocation.
241
+
242
+ textual serve "python -m textual"
243
+
244
+ You may also want to add the `--dev` switch, which will enable textual devtools.
245
+
246
+ textual serve --dev "python -m textual"
247
+
248
+
249
+ """
238
250
from textual_serve .server import Server
239
251
240
- run_command = " " .join (command )
241
- server = Server (run_command , host , port , title = title , public_url = url )
252
+ server = Server (command , host , port , title = title , public_url = url )
242
253
server .serve (debug = dev )
243
254
244
255
0 commit comments