@@ -9,6 +9,7 @@ class Opts:
99 project_dir : str | None = None
1010 clean : bool = True
1111 varargs : dict = field (default_factory = dict )
12+ client : bool = False
1213
1314
1415def default_argparse (
@@ -28,12 +29,19 @@ def default_argparse(
2829 default = False ,
2930 help = "Turn off sbt clean. Default: False" ,
3031 )
32+ arg_p .add_argument (
33+ "--client" ,
34+ action = "store_true" ,
35+ default = False ,
36+ help = "Run sbt in --client mode, persisting sessions across commits. Default: False" ,
37+ )
3138 for fn in additional_args :
3239 fn (arg_p )
3340 varags = vars (arg_p .parse_args (argv ))
3441 return Opts (
3542 project_dir = varags .pop ("project_dir" , None ),
3643 clean = not varags .pop ("no_clean" , False ),
44+ client = varags .pop ("client" , False ),
3745 varargs = varags ,
3846 )
3947
@@ -45,12 +53,13 @@ def run_sbt_command(
4553 opts : Opts = Opts (),
4654):
4755 print (f"Running SBT command: { task_def } with options: { opts } " )
56+ sbt_args = "--client" if opts .client else ""
4857 if opts .clean :
4958 task_def = f"; clean ; { task_def } "
5059 else :
5160 task_def = f"; { task_def } "
5261 sbt_process = subprocess .run (
53- [f"sbt '{ task_def } '" ],
62+ [f"sbt { sbt_args } '{ task_def } '" ],
5463 stdout = subprocess .PIPE ,
5564 stderr = subprocess .STDOUT ,
5665 shell = True ,
0 commit comments