From be5e0048913797f2ef91065908730da025113c34 Mon Sep 17 00:00:00 2001 From: Egor Tensin Date: Sat, 6 Jun 2026 22:23:54 +0200 Subject: move Jekyll source files to src/ --- _notes/makefile.md | 129 ----------------------------------------------------- 1 file changed, 129 deletions(-) delete mode 100644 _notes/makefile.md (limited to '_notes/makefile.md') diff --git a/_notes/makefile.md b/_notes/makefile.md deleted file mode 100644 index 62e0570..0000000 --- a/_notes/makefile.md +++ /dev/null @@ -1,129 +0,0 @@ ---- -title: make -subtitle: best practices -layout: nosidebar -links: - - {rel: stylesheet, href: 'assets/css/guides.css'} -features: - - note: This should go on top of every Makefile. - sections: - - do: - - | - MAKEFLAGS += --no-builtin-rules --no-builtin-variables --warn-undefined-variables - unexport MAKEFLAGS - .DEFAULT_GOAL := all - .DELETE_ON_ERROR: - .SUFFIXES: - SHELL := bash - .SHELLFLAGS := -eu -o pipefail -c - - escape = $(subst ','\'',$(1)) - - define noexpand - ifeq ($$(origin $(1)),environment) - $(1) := $$(value $(1)) - endif - ifeq ($$(origin $(1)),environment override) - $(1) := $$(value $(1)) - endif - ifeq ($$(origin $(1)),command line) - override $(1) := $$(value $(1)) - endif - endef - - note: Quote command arguments and use the `escape` function on variables and shell output. - sections: - - do: - - | - var := Includes ' quote - test: - printf '%s\n' '$(call escape,$(var))' - dont: - - | - var := Includes space - test: - printf '%s\n' $(var) - - | - var := Includes ' quote - test: - printf '%s\n' '$(var)' - - do: - - | - cwd := $(shell pwd) - test: - printf 'In directory %s\n' '$(call escape,$(cwd))' - dont: - - | - cwd := $(shell pwd) - test: - printf 'In directory %s\n' $(cwd) - - | - cwd := $(shell pwd) - test: - printf 'In directory %s\n' '$(cwd)' - - note: Use the `noexpand` function on environment variables or variables that can be overridden on the command line. - sections: - - do: - - | - has_default ?= Default value - $(eval $(call noexpand,has_default)) - - test: - echo '$(call escape,$(has_default))' - dont: - - | - has_default ?= Default value - - test: - echo '$(call escape,$(has_default))' - - | - has_default ?= Default value - export has_default - - test: - echo "$$has_default" - - do: - - | - $(eval $(call noexpand,ENV_VAR)) - - test: - echo '$(call escape,$(ENV_VAR))' - dont: - - | - test: - echo '$(call escape,$(ENV_VAR))' ---- -I've made a [detailed blog post] about how all of this works. -{: .alert .alert-info } - -[detailed blog post]: {% post_url 2020-05-20-makefile-escaping %} - -{% for feature in page.features %} - {{ feature.note | markdownify }} - {% for section in feature.sections %} -
- {% if section.do %} - {% if section.dont %}{% assign width = "6" %}{% else %}{% assign width = "12" %}{% endif %} -
- {% for guide in section.do %} -
-
{{ guide }}
-
-
- {% endfor %} -
- {% endif %} - {% if section.dont %} - {% if section.do %}{% assign width = "6" %}{% else %}{% assign width = "12" %}{% endif %} -
- {% for guide in section.dont %} -
-
{{ guide }}
-
-
- {% endfor %} -
- {% endif %} -
- {% endfor %} -
-{% endfor %} -- cgit v1.3