.PHONY: help version bump patch package build clean

PACKAGE_JSON := package.json
VSCE := npx --yes @vscode/vsce

help:
	@echo "Targets:"
	@echo "  make build    - bump patch version and build .vsix"
	@echo "  make package  - build .vsix without version bump"
	@echo "  make bump     - bump patch version only"
	@echo "  make version  - print current version"
	@echo "  make clean    - remove generated .vsix files"

version:
	@node -p "require('./$(PACKAGE_JSON)').version"

bump patch:
	@node -e "const fs=require('fs');const p='$(PACKAGE_JSON)';const j=JSON.parse(fs.readFileSync(p,'utf8'));const [ma,mi,pa]=j.version.split('.').map(Number);if([ma,mi,pa].some(Number.isNaN)){throw new Error('Invalid semver in package.json: '+j.version);}j.version=[ma,mi,pa+1].join('.');fs.writeFileSync(p,JSON.stringify(j,null,2)+'\n');console.log('Version bumped to',j.version);"

package:
	@$(VSCE) package

build: bump package

clean:
	@rm -f ./*.vsix
