@@ -9,6 +9,7 @@ class Opts:
9
9
project_dir : str | None = None
10
10
clean : bool = True
11
11
varargs : dict = field (default_factory = dict )
12
+ client : bool = False
12
13
13
14
14
15
def default_argparse (
@@ -28,12 +29,19 @@ def default_argparse(
28
29
default = False ,
29
30
help = "Turn off sbt clean. Default: False" ,
30
31
)
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
+ )
31
38
for fn in additional_args :
32
39
fn (arg_p )
33
40
varags = vars (arg_p .parse_args (argv ))
34
41
return Opts (
35
42
project_dir = varags .pop ("project_dir" , None ),
36
43
clean = not varags .pop ("no_clean" , False ),
44
+ client = varags .pop ("client" , False ),
37
45
varargs = varags ,
38
46
)
39
47
@@ -45,12 +53,13 @@ def run_sbt_command(
45
53
opts : Opts = Opts (),
46
54
):
47
55
print (f"Running SBT command: { task_def } with options: { opts } " )
56
+ sbt_args = "--client" if opts .client else ""
48
57
if opts .clean :
49
58
task_def = f"; clean ; { task_def } "
50
59
else :
51
60
task_def = f"; { task_def } "
52
61
sbt_process = subprocess .run (
53
- [f"sbt '{ task_def } '" ],
62
+ [f"sbt { sbt_args } '{ task_def } '" ],
54
63
stdout = subprocess .PIPE ,
55
64
stderr = subprocess .STDOUT ,
56
65
shell = True ,
0 commit comments