@@ -198,9 +198,9 @@ def cli_exec(
198
198
options .deny_profile_and_path (profile , profile_path )
199
199
conf = Configuration (profile )
200
200
engine = Engine (conf , conanfile = profile_path )
201
- engine .conan_args = conan_arg
202
- engine .conan_options = conan_option
203
- engine .conan_settings = conan_setting
201
+ engine .conan_args = list ( conan_arg )
202
+ engine .conan_options = list ( conan_option )
203
+ engine .conan_settings = list ( conan_setting )
204
204
205
205
engine .preserve_env = preserve_env
206
206
@@ -248,9 +248,9 @@ def cli_shell(
248
248
conf = Configuration (profile )
249
249
engine = Engine (conf , conanfile = profile_path )
250
250
engine .preserve_env = preserve_env
251
- engine .conan_args = conan_arg
252
- engine .conan_options = conan_option
253
- engine .conan_settings = conan_setting
251
+ engine .conan_args = list ( conan_arg )
252
+ engine .conan_options = list ( conan_option )
253
+ engine .conan_settings = list ( conan_setting )
254
254
255
255
# Replace process with shell.
256
256
engine .shell (shell_args , use_cache = cache )
@@ -305,14 +305,45 @@ def cli_activate(
305
305
options .deny_profile_and_path (profile , profile_path )
306
306
conf = Configuration (profile )
307
307
engine = Engine (conf , conanfile = profile_path )
308
- engine .conan_args = conan_arg
309
- engine .conan_options = conan_option
310
- engine .conan_settings = conan_setting
308
+ engine .conan_args = list ( conan_arg )
309
+ engine .conan_options = list ( conan_option )
310
+ engine .conan_settings = list ( conan_setting )
311
311
312
- # Replace process with shell.
313
312
engine .activate (use_cache = cache )
314
313
315
314
315
+ # _________________________________________________________________________
316
+ # Command: prepare [--cache] [--profile=PROFILE | --profile-path=CONANFILE]
317
+ @main .command ("prepare" )
318
+ @options .profile ()
319
+ @options .profile_path ()
320
+ @options .conan_arg ()
321
+ @options .conan_option ()
322
+ @options .conan_setting ()
323
+ @click .pass_obj
324
+ def cli_prepare (
325
+ opt ,
326
+ profile : str ,
327
+ profile_path : str ,
328
+ conan_arg : List [str ],
329
+ conan_option : List [str ],
330
+ conan_setting : List [str ],
331
+ ) -> None :
332
+ """Prepare environment for selected profile.
333
+
334
+ This involves downloading missing and available packages and building
335
+ outdated packages.
336
+ """
337
+ options .deny_profile_and_path (profile , profile_path )
338
+ conf = Configuration (profile )
339
+ engine = Engine (conf , conanfile = profile_path )
340
+ engine .conan_args = list (conan_arg )
341
+ engine .conan_options = list (conan_option )
342
+ engine .conan_settings = list (conan_setting )
343
+
344
+ engine .prepare ()
345
+
346
+
316
347
# _________________________________________________________________________
317
348
# Command: clean [--profile PROFILE | --profile-path=CONANFILE]
318
349
@main .command ("clean" )
0 commit comments