diff --git a/assets/settings/initial_tasks.json b/assets/settings/initial_tasks.json index b892d866a4..0f4d8f98b3 100644 --- a/assets/settings/initial_tasks.json +++ b/assets/settings/initial_tasks.json @@ -1,27 +1,19 @@ // Static tasks configuration. // // Example: -// { -// "version": "1", -// "tasks": [ -// { -// "label": "human-readable label for UI", -// "command": "bash", -// // rest of the parameters are optional -// "args": ["-c", "for i in {1..10}; do echo \"Second $i\"; sleep 1; done"], -// // Env overrides for the command, will be appended to the terminal's environment from the settings. -// "env": { "foo": "bar" }, -// // Current working directory to spawn the command into, defaults to current project root. -// "cwd": "/path/to/working/directory", -// // Whether to use a new terminal tab or reuse the existing one to spawn the process, defaults to `false`. -// "use_new_terminal": false, -// // Whether to allow multiple instances of the same task to be run, or rather wait for the existing ones to finish, defaults to `false`. -// "allow_concurrent_runs": false -// } -// ] -// } -// -{ - "version": "1", - "tasks": [] -} +[ + { + "label": "Example task", + "command": "bash", + // rest of the parameters are optional + "args": ["-c", "for i in {1..5}; do echo \"Hello $i/5\"; sleep 1; done"], + // Env overrides for the command, will be appended to the terminal's environment from the settings. + "env": { "foo": "bar" }, + // Current working directory to spawn the command into, defaults to current project root. + //"cwd": "/path/to/working/directory", + // Whether to use a new terminal tab or reuse the existing one to spawn the process, defaults to `false`. + "use_new_terminal": false, + // Whether to allow multiple instances of the same task to be run, or rather wait for the existing ones to finish, defaults to `false`. + "allow_concurrent_runs": false + } +] diff --git a/crates/task/src/static_source.rs b/crates/task/src/static_source.rs index 5a3df3cc51..e36f7d53ef 100644 --- a/crates/task/src/static_source.rs +++ b/crates/task/src/static_source.rs @@ -48,10 +48,7 @@ pub(crate) struct Definition { /// A group of Tasks defined in a JSON file. #[derive(Clone, Debug, Default, PartialEq, Eq, Serialize, Deserialize, JsonSchema)] -pub struct DefinitionProvider { - version: String, - tasks: Vec, -} +pub struct DefinitionProvider(Vec); impl DefinitionProvider { /// Generates JSON schema of Tasks JSON definition format. @@ -121,7 +118,7 @@ impl StaticSource { static_source.tasks = new_definitions .read(cx) .get() - .tasks + .0 .clone() .into_iter() .enumerate() diff --git a/crates/terminal_view/src/terminal_panel.rs b/crates/terminal_view/src/terminal_panel.rs index 3143f725ac..9d820aad1c 100644 --- a/crates/terminal_view/src/terminal_panel.rs +++ b/crates/terminal_view/src/terminal_panel.rs @@ -316,7 +316,7 @@ impl TerminalPanel { let command = std::mem::take(&mut spawn_task.command); let args = std::mem::take(&mut spawn_task.args); spawn_task.command = shell; - user_args.extend(["-c".to_owned(), command]); + user_args.extend(["-i".to_owned(), "-c".to_owned(), command]); user_args.extend(args); spawn_task.args = user_args; }