Antonio Fuschetto
Antonio Fuschetto

Reputation: 240

Working directory of Visual Studio Code tasks

What is the working directory of a Visual Studio Code task?

According to the official documentation, the default should be the workspace directory, i.e., workspaceFolder, but running a task which simply executes echo $PWD, it shows the parent directory of workspaceFolder.

In other words, given dir1/dir2/.vscode/tasks.json, the following trivial task prints dir1 while the workspaceFolder refers to dir2 (the actual workspace directory).

What should I do to run a task from the workspaceFolder? Changing the cwd option does not help.

tasks.json:

{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "shell",
            "label": "Sample",
            "command": "echo PWD=$PWD workspaceFolder=${workspaceFolder}",
            "options": {
              "cwd": "${workspaceFolder}"
            }
        }
    ]
}

Execution output:

> Executing task: echo PWD=$PWD workspaceFolder=/home/ubuntu/dir1/dir2 <

PWD=/home/ubuntu/dir1 workspaceFolder=/home/ubuntu/dir1/dir2

As additional and probably relevant note, I am developing remotely using the Remote - SSH extension.

Upvotes: 23

Views: 27989

Answers (1)

Sairam Gourishetty
Sairam Gourishetty

Reputation: 700

{
    "label": "Status",
    "detail": "git status",
    "type": "shell",
    "command": "git status",
    "group": "test",
    "options": {
        "cwd": "${workspaceFolder}/dir1/dir2/dir3/"
    },
    "presentation": {
        "reveal": "always",
        "panel": "new",
        "focus": true
    }
}

We can use the "options" key to set the working directory the task should execute in.

Upvotes: 24

Related Questions