diff options
author | Alejandro Colomar <alx@kernel.org> | 2023-04-14 16:46:45 +0200 |
---|---|---|
committer | Alejandro Colomar <alx@kernel.org> | 2023-04-19 23:37:19 +0200 |
commit | 3bf446018179a9639416e37477e2c257f73d9942 (patch) | |
tree | e8b4b41978f8a036fbe36f3c36a9b44a7160ee38 | |
parent | 4b59a57e7c4fe414933b44656d869bd7eda7966d (diff) |
*.mk: lint, lint-sh, lint-sh-shellcheck: Lint the shell script
Signed-off-by: Alejandro Colomar <alx@kernel.org>
-rw-r--r-- | Makefile | 43 | ||||
-rw-r--r-- | share/mk/build/_.mk | 21 | ||||
-rw-r--r-- | share/mk/cmd.mk | 12 | ||||
-rw-r--r-- | share/mk/lint/_.mk | 16 | ||||
-rw-r--r-- | share/mk/lint/sh.mk | 39 | ||||
-rw-r--r-- | share/mk/src.mk | 13 | ||||
-rw-r--r-- | share/mk/verbose.mk | 16 |
7 files changed, 160 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..01556eb --- /dev/null +++ b/Makefile @@ -0,0 +1,43 @@ +# SPDX-License-Identifier: GPL-3.0-or-later +# Copyright 2023, Alejandro Colomar <alx@kernel.org> + +SHELL := /usr/bin/env bash -Eeuo pipefail + + +MAKEFLAGS += --no-builtin-rules +MAKEFLAGS += --no-builtin-variables +MAKEFLAGS += --warn-undefined-variables + + +srcdir := . +DATAROOTDIR := $(srcdir)/share +MAKEFILEDIR := $(DATAROOTDIR)/mk + + +.PHONY: all +all: + @: + + +.PHONY: help +help: + $(info all No-op) + $(info ) + $(info lint Alias for "lint-sh") + $(info lint-sh Alias for "lint-sh-shellcheck") + $(info lint-sh-shellcheck Lint the shell script with shellcheck(1)) + $(info ) + $(info help Print this help) + $(info ) + + +.SECONDEXPANSION: + + +include $(MAKEFILEDIR)/build/_.mk +include $(MAKEFILEDIR)/lint/_.mk +include $(MAKEFILEDIR)/lint/sh.mk +include $(MAKEFILEDIR)/verbose.mk + + +.DELETE_ON_ERROR: diff --git a/share/mk/build/_.mk b/share/mk/build/_.mk new file mode 100644 index 0000000..5b5bc07 --- /dev/null +++ b/share/mk/build/_.mk @@ -0,0 +1,21 @@ +# SPDX-License-Identifier: GPL-3.0-or-later +# Copyright 2023, Alejandro Colomar <alx@kernel.org> + +ifndef MAKEFILE_BUILD_INCLUDED +MAKEFILE_BUILD_INCLUDED := 1 + + +include $(MAKEFILEDIR)/cmd.mk + + +builddir := .tmp + +_BINDIR := $(builddir)/bin + + +$(builddir)/%/: + +$(info MKDIR $@) + +$(MKDIR) $@ + + +endif # include guard diff --git a/share/mk/cmd.mk b/share/mk/cmd.mk new file mode 100644 index 0000000..470b764 --- /dev/null +++ b/share/mk/cmd.mk @@ -0,0 +1,12 @@ +# SPDX-License-Identifier: GPL-3.0-or-later +# Copyright 2023, Alejandro Colomar <alx@kernel.org> + +ifndef MAKEFILE_CMD_INCLUDED +MAKEFILE_CMD_INCLUDED := 1 + + +MKDIR := mkdir -p +SHELLCHECK := shellcheck + + +endif # include guard diff --git a/share/mk/lint/_.mk b/share/mk/lint/_.mk new file mode 100644 index 0000000..b2a1cbe --- /dev/null +++ b/share/mk/lint/_.mk @@ -0,0 +1,16 @@ +# SPDX-License-Identifier: GPL-3.0-or-later +# Copyright 2023, Alejandro Colomar <alx@kernel.org> + +ifndef MAKEFILE_LINT_INCLUDED +MAKEFILE_LINT_INCLUDED := 1 + + +lint := lint-sh + + +.PHONY: lint +lint: $(lint) + @: + + +endif # include guard diff --git a/share/mk/lint/sh.mk b/share/mk/lint/sh.mk new file mode 100644 index 0000000..a20d2ab --- /dev/null +++ b/share/mk/lint/sh.mk @@ -0,0 +1,39 @@ +# SPDX-License-Identifier: GPL-3.0-or-later +# Copyright 2023, Alejandro Colomar <alx@kernel.org> + +ifndef MAKEFILE_LINT_SH_INCLUDED +MAKEFILE_LINT_SH_INCLUDED := 1 + + +include $(MAKEFILEDIR)/build/_.mk +include $(MAKEFILEDIR)/src.mk + + +DEFAULT_SHELLCHECKFLAGS := +EXTRA_SHELLCHECKFLAGS := +SHELLCHECKFLAGS := $(DEFAULT_SHELLCHECKFLAGS) $(EXTRA_SHELLCHECKFLAGS) +SHELLCHECK := shellcheck + + +_LINT_sh_shellcheck := $(patsubst $(BINDIR)/%,$(_BINDIR)/%.lint-sh.shellcheck.touch,$(BIN)) + +linters_sh := shellcheck +lint_sh := $(foreach x,$(linters_sh),lint-sh-$(x)) + + +$(_LINT_sh_shellcheck): $(_BINDIR)/%.lint-sh.shellcheck.touch: $(BINDIR)/% | $$(@D)/ + $(info SHELLCHECK $@) + $(SHELLCHECK) $(SHELLCHECKFLAGS) $< + touch $@ + + +.PHONY: $(lint_sh) +$(lint_sh): lint-sh-%: $$(_LINT_sh_%) + @: + +.PHONY: lint-sh +lint-sh: $(lint_sh) + @: + + +endif # include guard diff --git a/share/mk/src.mk b/share/mk/src.mk new file mode 100644 index 0000000..e409b78 --- /dev/null +++ b/share/mk/src.mk @@ -0,0 +1,13 @@ +# SPDX-License-Identifier: GPL-3.0-or-later +# Copyright 2023, Alejandro Colomar <alx@kernel.org> + +ifndef MAKEFILE_SRC_INCLUDED +MAKEFILE_SRC_INCLUDED := 1 + + +BINDIR := $(srcdir)/bin + +BIN := $(BINDIR)/stdc + + +endif # include guard diff --git a/share/mk/verbose.mk b/share/mk/verbose.mk new file mode 100644 index 0000000..864068c --- /dev/null +++ b/share/mk/verbose.mk @@ -0,0 +1,16 @@ +# SPDX-License-Identifier: GPL-3.0-or-later +# Copyright 2023, Alejandro Colomar <alx@kernel.org> + +ifndef MAKEFILE_VERBOSE_INCLUDED +MAKEFILE_VERBOSE_INCLUDED := 1 + + +ifdef V +HIDE_ERR := +else +HIDE_ERR := 2>/dev/null +.SILENT: +endif + + +endif # include guard |