mirror of https://github.com/docker/cli.git
Makefile: don't warn "outside container" for some targets
This change allows some make targets to be ran outside the dev-container for easier discovery and use: - `make clean` can be used on the host (as artifacts created from within the development container are usually stored on the host). - `make help` was already allowed - `make dev` and `make shell` are added to the regular Makefile, to make it easier to create and start the development container. - When attempting to run `make dev` from within the development container, a message is printed, and the target is cancelled: root@docker-cli-dev$ make dev you are already in the dev container Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
parent
90b60b5d88
commit
94e08f2e2d
11
Makefile
11
Makefile
|
@ -9,6 +9,17 @@ all: binary
|
||||||
|
|
||||||
_:=$(shell ./scripts/warn-outside-container $(MAKECMDGOALS))
|
_:=$(shell ./scripts/warn-outside-container $(MAKECMDGOALS))
|
||||||
|
|
||||||
|
.PHONY: dev
|
||||||
|
dev: ## start a build container in interactive mode for in-container development
|
||||||
|
@if [ -n "${DISABLE_WARN_OUTSIDE_CONTAINER}" ]; then \
|
||||||
|
echo "you are already in the dev container"; \
|
||||||
|
else \
|
||||||
|
$(MAKE) -f docker.Makefile dev; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
.PHONY: shell
|
||||||
|
shell: dev ## alias for dev
|
||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
clean: ## remove build artifacts
|
clean: ## remove build artifacts
|
||||||
rm -rf ./build/* man/man[1-9] docs/yaml
|
rm -rf ./build/* man/man[1-9] docs/yaml
|
||||||
|
|
|
@ -3,16 +3,25 @@ set -eu
|
||||||
|
|
||||||
target="${1:-}"
|
target="${1:-}"
|
||||||
|
|
||||||
if [ "$target" != "help" ] && [ -z "${DISABLE_WARN_OUTSIDE_CONTAINER:-}" ]; then
|
if [ -z "${DISABLE_WARN_OUTSIDE_CONTAINER:-}" ]; then
|
||||||
(
|
case $target in
|
||||||
echo
|
clean|dev|help|shell)
|
||||||
echo
|
# no warning needed for these targets
|
||||||
echo "WARNING: you are not in a container."
|
;;
|
||||||
echo "Use \"make -f docker.Makefile $target\" or set"
|
*)
|
||||||
echo "DISABLE_WARN_OUTSIDE_CONTAINER=1 to disable this warning."
|
(
|
||||||
echo
|
echo
|
||||||
echo "Press Ctrl+C now to abort."
|
echo "\033[1mWARNING\033[0m: you are not in a container."
|
||||||
echo
|
echo
|
||||||
) >&2
|
echo 'Use "\033[1mmake dev\033[0m" to start an interactive development container,'
|
||||||
sleep 10
|
echo "use \"\033[1mmake -f docker.Makefile $target\033[0m\" to execute this target"
|
||||||
|
echo "in a container, or set \033[1mDISABLE_WARN_OUTSIDE_CONTAINER=1\033[0m to"
|
||||||
|
echo "disable this warning."
|
||||||
|
echo
|
||||||
|
echo "Press \033[1mCtrl+C\033[0m now to abort, or wait for the script to continue.."
|
||||||
|
echo
|
||||||
|
) >&2
|
||||||
|
sleep 5
|
||||||
|
;;
|
||||||
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
Loading…
Reference in New Issue