// 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.202.3/containers/hugo
{
	"name": "Hugo (Community)",
	"build": {
		"dockerfile": "Dockerfile",
		"args": {
			// Update VARIANT to pick hugo variant.
			// Example variants: hugo, hugo_extended
			// Rebuild the container if it already exists to update.
			"VARIANT": "hugo_extended",
			// Update VERSION to pick a specific hugo version.
			// Example versions: latest, 0.73.0, 0,71.1
			// Rebuild the container if it already exists to update.
			"VERSION": "latest",
			// Update NODE_VERSION to pick the Node.js version
			"NODE_VERSION": "18",
		}
	},

	"customizations": {
		// Configure properties specific to VS Code.
		// See https://containers.dev/supporting#visual-studio-code for more details
		"vscode": {
			// Set *default* container specific settings.json values on container create.
			"settings": {
				"html.format.templating": true,
			},
			// Add the IDs of extensions you want installed when the container is created.
			"extensions": [
				"tamasfe.even-better-toml",
				"davidanson.vscode-markdownlint",
				"budparr.language-hugo-vscode",
			]
		}
	},

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

	// Use 'postAttachCommand' to run each time a tool has successfully attached to the container.
	// Note that, postCreateCommand, postStartCommand, postAttachCommand, and initializeCommand all have 3 types:
	// 		Array: Passed to the OS for execution without going through a shell
	// 		String: Goes through a shell (it needs to be parsed into command and arguments)
	// 		Object: All lifecycle scripts have been extended to support object types to allow for parallel execution
	// See https://containers.dev/implementors/json_reference/#formatting-string-vs-array-properties for more details.
	// The following line uses string format.
    "postAttachCommand": "echo 🌲 Git version: $(git --version) && echo 🌲 Hugo version: $(hugo version) && echo 🌲 Node.js version: $(node -v) && echo 🌲 Golang version: $(go version)",

	// Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
	"remoteUser": "node",
	"features": {
		"golang": "latest"
	}
}
