// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/go
{
	"name": "Go",
	// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
	"image": "mcr.microsoft.com/devcontainers/go:1.20",

	// Features to add to the dev container. More info: https://containers.dev/features.
	"features": {
		"ghcr.io/guiyomh/features/vim": {}
	},

	// Configure tool-specific properties.
	"customizations": {
		// Configure properties specific to VS Code.
		"vscode": {
			"settings": {},
			"extensions": [
				// "streetsidesoftware.code-spell-checker"
			]
		}
	},

	// Use 'forwardPorts' to make a list of ports inside the container available locally.
	// "forwardPorts": [9000],

	// Use 'portsAttributes' to set default properties for specific forwarded ports. 
	// More info: https://containers.dev/implementors/json_reference/#port-attributes
	// "portsAttributes": {
		// 	"9000": {
			// 		"label": "Hello Remote World",
			// 		"onAutoForward": "notify"
			// 	}
			// }

			// Use 'postCreateCommand' to run commands after the container is created.
			"postCreateCommand": {
				"download revive": "go install github.com/mgechev/revive@latest",
				"add githook": "echo revive -set_exit_status > .git/hooks/pre-commit",
				"chmod githook": "chmod +x .git/hooks/pre-commit"
			}
			// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
			// "remoteUser": "root"
}