// Project tasks configuration. See https://zed.dev/docs/tasks for documentation.
//
// Example:
[
  {
    "label": "build DEBUG i2MassChroQ",
    "command": "cd $GRAM_WORKTREE_ROOT && mkdir -p dbuild && cd dbuild && cmake -G Ninja -DCMAKE_BUILD_TYPE=Debug -DMAKE_TESTS=1 -DUSE_TYPST=1 -DLOCAL_DEV=1 .. && ninja -j 10 && $GRAM_WORKTREE_ROOT/dbuild/src/i2masschroq",
  },
  {
    "label": "build RELEASE i2MassChroQ",
    "command": "cd $GRAM_WORKTREE_ROOT && mkdir -p build && cd build && cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DMAKE_TESTS=1 -DUSE_TYPST=1 -DLOCAL_DEV=1 .. && ninja -j 10 && $GRAM_WORKTREE_ROOT/build/src/i2masschroq",
  },
  {
    "label": "run RELEASE i2MassChroQ",
    "command": "$GRAM_WORKTREE_ROOT/build/src/i2masschroq",
  },
  {
    "label": "build RELEASE W64 i2MassChroQ",
    // Env overrides for the command, will be appended to the terminal's environment from the settings.
    "env": {
      "PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/mxe/usr/bin",
    },
    "command": "cd $GRAM_WORKTREE_ROOT && mkdir -p wbuild && cd wbuild && /opt/mxe/usr/bin/x86_64-w64-mingw32.shared-cmake -DCMAKE_BUILD_TYPE=Release -DMXE=1 .. && make -j 10 && cd ../win64 && ./innosetup.bash",
  },
  {
    "label": "echo current file's path",
    "command": "echo $GRAM_FILE",
    "tags": ["rust-test"],
  },
  {
    "label": "Documentation i2MassChroQ",
    "command": "cd $GRAM_WORKTREE_ROOT/doc/typst && typst watch --root $GRAM_WORKTREE_ROOT main.typ $GRAM_WORKTREE_ROOT/build/doc/typst/i2masschroq_user_manual.pdf",
  },
  {
    "label": "Documentation MassChroQ3",
    "command": "cd $GRAM_WORKTREE_ROOT/doc/typst && typst watch --root $GRAM_WORKTREE_ROOT masschroq3/masschroq3.typ $GRAM_WORKTREE_ROOT/build/doc/typst/masschroq3_user_manual.pdf",
  },
  {
    "label": "build debian package i2MassChroQ",
    "command": "cd $GRAM_WORKTREE_ROOT && rm -rf cbuild && mkdir -p cbuild && cd cbuild && cmake .. && make deb",
  },
  {
    "label": "Example task",
    "command": "for i in {1..5}; do echo \"Hello $i/5\"; sleep 1; done",
    //"args": [],
    // 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,
    // What to do with the terminal pane and tab, after the command was started:
    // * `always` — always show the task's pane, and focus the corresponding tab in it (default)
    // * `no_focus` — always show the task's pane, add the task's tab in it, but don't focus it
    // * `never` — do not alter focus, but still add/reuse the task's tab in its pane
    "reveal": "always",
    // Where to place the task's terminal item after starting the task:
    // * `dock` — in the terminal dock, "regular" terminal items' place (default)
    // * `center` — in the central pane group, "main" editor area
    "reveal_target": "dock",
    // What to do with the terminal pane and tab, after the command had finished:
    // * `never` — Do nothing when the command finishes (default)
    // * `always` — always hide the terminal tab, hide the pane also if it was the last tab in it
    // * `on_success` — hide the terminal tab on task success only, otherwise behaves similar to `always`
    "hide": "never",
    // Which shell to use when running a task inside the terminal.
    // May take 3 values:
    // 1. (default) Use the system's default terminal configuration in /etc/passwd
    //      "shell": "system"
    // 2. A program:
    //      "shell": {
    //        "program": "sh"
    //      }
    // 3. A program with arguments:
    //     "shell": {
    //         "with_arguments": {
    //           "program": "/bin/bash",
    //           "args": ["--login"]
    //         }
    //     }
    "shell": "system",
    // Whether to show the task line in the output of the spawned task, defaults to `true`.
    "show_summary": true,
    // Whether to show the command line in the output of the spawned task, defaults to `true`.
    "show_command": true,
    // Represents the tags for inline runnable indicators, or spawning multiple tasks at once.
    // "tags": []
  },
]
