diff --git a/.gitignore b/.gitignore index 16015f8..ab3ff03 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,4 @@ knit +knit.bash +knit.fish +knit.zsh diff --git a/Makefile b/Makefile index a96230d..122fd7f 100644 --- a/Makefile +++ b/Makefile @@ -2,17 +2,34 @@ BINARY_NAME=knit PREFIX ?= /usr/local BINDIR = $(PREFIX)/bin +BASHDIR = $(PREFIX)/share/bash-completions/completions +FISHDIR = $(PREFIX)/share/fish/vendor_completions.d +ZSHDIR = $(PREFIX)/share/zsh/vendor_completions .PHONY: all build install clean -all: build +all: build completions build: go build -o $(BINARY_NAME) ./cmd/knit +completions: build + ./$(BINARY_NAME) completion bash > knit.bash + ./$(BINARY_NAME) completion fish > knit.fish + ./$(BINARY_NAME) completion zsh > knit.zsh + install: build - mkdir -p $(BINDIR) - cp $(BINARY_NAME) $(BINDIR)/$(BINARY_NAME) + install -d $(BINDIR) + install -m 755 $(BINARY_NAME) $(BINDIR)/$(BINARY_NAME) + install -d $(BASHDIR) + install -m 755 knit.bash $(BASHDIR)/knit + install -d $(FISHDIR) + install -m 755 knit.fish $(FISHDIR)/knit.fish + install -d $(ZSHDIR) + install -m 755 knit.zsh $(ZSHDIR)/_knit clean: rm -f $(BINARY_NAME) + rm -f knit.bash + rm -f knit.fish + rm -f knit.zsh diff --git a/cmd/knit/main.go b/cmd/knit/main.go index 54fcd2a..ed31ca6 100644 --- a/cmd/knit/main.go +++ b/cmd/knit/main.go @@ -17,6 +17,7 @@ func main() { Use: "knit", Short: "knit is a CLI for tangled.sh", } + root.CompletionOptions.HiddenDefaultCmd = true root.AddCommand(auth.Command()) root.AddCommand(pr.Command())