// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
// https://github.com/microsoft/vscode-dev-containers/tree/v0.162.0/containers/javascript-node
{
	"name": "Replicated Codeserver",
	"build": {
		"dockerfile": "Dockerfile",
		"args": { 
            "GO_VERSION": "1.17",
        }
	},

	// Set *default* container specific settings.json values on container create.
	"settings": { 
        "terminal.integrated.shell.linux": "/usr/bin/zsh",
        "go.toolsManagement.checkForUpdates": "local",
        "go.useLanguageServer": true,
        "go.gopath": "/go",
        "go.goroot": "/usr/local/go",
        "python.pythonPath": "/opt/python/latest/bin/python",
        "python.linting.enabled": true,
        "python.linting.pylintEnabled": true,
        "python.formatting.autopep8Path": "/usr/local/py-utils/bin/autopep8",
        "python.formatting.blackPath": "/usr/local/py-utils/bin/black",
        "python.formatting.yapfPath": "/usr/local/py-utils/bin/yapf",
        "python.linting.banditPath": "/usr/local/py-utils/bin/bandit",
        "python.linting.flake8Path": "/usr/local/py-utils/bin/flake8",
        "python.linting.mypyPath": "/usr/local/py-utils/bin/mypy",
        "python.linting.pycodestylePath": "/usr/local/py-utils/bin/pycodestyle",
        "python.linting.pydocstylePath": "/usr/local/py-utils/bin/pydocstyle",
        "python.linting.pylintPath": "/usr/local/py-utils/bin/pylint",
        "lldb.executable": "/usr/bin/lldb",
        "files.watcherExclude": {
            "**/target/**": true
        }
	},
    "remoteUser": "codespace",
	"overrideCommand": false,
    "runArgs": [
		"--privileged",
		"--init"
	],
    "mounts": [
		"source=/var/run/docker.sock,target=/var/run/docker-host.sock,type=bind",
	],
	// Add the IDs of extensions you want installed when the container is created.
	"extensions": [
		"dbaeumer.vscode-eslint",
        "GitHub.vscode-pull-request-github",
        "golang.go",
        "github.copilot",
        "lizebang.bash-extension-pack",
        "streetsidesoftware.code-spell-checker",
	],

	// Use 'postCreateCommand' to run commands after the container is created.
	"postCreateCommand": "bash /var/lib/replicated/scripts/onCreate.sh",

    // Use 'postStartCommand' to run commands after the container is created like starting minikube.
	"postStartCommand": "bash /var/lib/replicated/scripts/onStart.sh",

	// Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
	// "remoteUser": "node"
}
