diff options
| author | xieyonn <qxieyongp@163.com> | 2025-09-21 15:50:06 +0800 |
|---|---|---|
| committer | Junegunn Choi <junegunn.c@gmail.com> | 2025-09-24 22:41:54 +0900 |
| commit | de0df2422ac26edcd083d801e93635deb0786589 (patch) | |
| tree | 76e4fbe88acaaa2057cfdf60339bafbfb8532e15 /Makefile | |
| parent | 148b0a94cdb88bc6e0ff36af1ab2b7bccd24e555 (diff) | |
| download | fzf-de0df2422ac26edcd083d801e93635deb0786589.tar.gz | |
feat: add make fmt for *.sh *.bash
1. add .editorconfig file, add rules for .sh .bash files.
2. add make fmt target, use:
- gofmt *.go.
- shfmt *.sh *.bash, shell/completion.bash, shell/key-bindings.bash
need a left indent due to an outermost if block.
3. add shfmt check for bash scripts in make lint target.
4. install shfmt in actions.
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 24 |
1 files changed, 22 insertions, 2 deletions
@@ -5,6 +5,15 @@ MAKEFILE := $(realpath $(lastword $(MAKEFILE_LIST))) ROOT_DIR := $(shell dirname $(MAKEFILE)) SOURCES := $(wildcard *.go src/*.go src/*/*.go shell/*sh man/man1/*.1) $(MAKEFILE) +BASH_SCRIPTS := $(ROOT_DIR)/bin/fzf-preview.sh \ + $(ROOT_DIR)/bin/fzf-tmux \ + $(ROOT_DIR)/install \ + $(ROOT_DIR)/uninstall \ + $(ROOT_DIR)/shell/common.sh \ + $(ROOT_DIR)/shell/update-common.sh +BASH_SCRIPTS_INDENT_LEFT := $(ROOT_DIR)/shell/completion.bash \ + $(ROOT_DIR)/shell/key-bindings.bash + ifdef FZF_VERSION VERSION := $(FZF_VERSION) else @@ -88,9 +97,20 @@ itest: bench: cd src && SHELL=/bin/sh GOOS= $(GO) test -v -tags "$(TAGS)" -run=Bench -bench=. -benchmem -lint: $(SOURCES) test/*.rb test/lib/*.rb +lint: $(SOURCES) test/*.rb test/lib/*.rb ${BASH_SCRIPTS} [ -z "$$(gofmt -s -d src)" ] || (gofmt -s -d src; exit 1) bundle exec rubocop -a --require rubocop-minitest --require rubocop-performance + [ -z "$$(shfmt -d $(BASH_SCRIPTS))" ] || (echo "format bash files by (make fmt)"; exit 1) + +fmt: $(SOURCES) $(BASH_SCRIPTS) $(BASH_SCRIPTS_INDENT_LEFT) + gofmt -s -w src + shfmt -w $(BASH_SCRIPTS) + # shift left because we have an outermost if block for historical reasons. + for f in $(BASH_SCRIPTS_INDENT_LEFT); do \ + shfmt -w "$$f"; \ + tmp=$$(mktemp); \ + sed 's/^ //' "$$f" > "$$tmp" && mv "$$tmp" "$$f"; \ + done install: bin/fzf @@ -189,4 +209,4 @@ update: $(GO) get -u $(GO) mod tidy -.PHONY: all generate build release test itest bench lint install clean docker docker-test update +.PHONY: all generate build release test itest bench lint install clean docker docker-test update fmt |
