prepare_port: prefix git clone output

To raise readability when preparing multiple ports in parallel we prefix
also the git clone output with the port name dark-yellow-coloured. To
achieve this we sed the git output. In sed \x1b[ resolves to an escape
sequence and \033[, that we use normally, doesn't. The echo command, at
the other hand, resolves both to an escape sequence. Thus we use the
sed-compatible version in general. This commit inhibits the progress
output of git clone as it can't be redirected to sed.

Ref #1872
This commit is contained in:
Martin Stein 2016-02-05 11:28:44 +01:00 committed by Christian Helmuth
parent b039608e95
commit 992a5ec1ae
2 changed files with 13 additions and 11 deletions

View File

@ -9,15 +9,17 @@ VERBOSE ?= @
ECHO := echo -e
HASHSUM := sha1sum
BRIGHT_COL ?= \033[01;33m
DARK_COL ?= \033[00;33m
DEFAULT_COL ?= \033[0m
BRIGHT_COL ?= \x1b[01;33m
DARK_COL ?= \x1b[00;33m
DEFAULT_COL ?= \x1b[0m
MSG_PREFIX := $(ECHO) "$(DARK_COL)$(notdir $(PORT:.port=)) $(DEFAULT_COL)"
MSG_DOWNLOAD := $(MSG_PREFIX)"download "
MSG_APPLY := $(MSG_PREFIX)"apply "
MSG_UPDATE := $(MSG_PREFIX)"update "
MSG_INSTALL := $(MSG_PREFIX)"install "
MSG_GENERATE := $(MSG_PREFIX)"generate "
MSG_EXTRACT := $(MSG_PREFIX)"extract "
MSG_PREFIX_TXT := $(DARK_COL)$(notdir $(PORT:.port=)) $(DEFAULT_COL)
MSG_PREFIX := $(ECHO) "$(MSG_PREFIX_TXT)"
MSG_DOWNLOAD := $(MSG_PREFIX)"download "
MSG_APPLY := $(MSG_PREFIX)"apply "
MSG_UPDATE := $(MSG_PREFIX)"update "
MSG_INSTALL := $(MSG_PREFIX)"install "
MSG_GENERATE := $(MSG_PREFIX)"generate "
MSG_EXTRACT := $(MSG_PREFIX)"extract "
MSG_GIT := $(MSG_PREFIX_TXT)git

View File

@ -160,7 +160,7 @@ _git_dir = $(call _assert,$(DIR($1)),Missing declaration of DIR($*))
($(ECHO) "Error: Undefined URL for $*"; false);
$(VERBOSE)dir=$(call _git_dir,$*);\
test -d $$dir || $(MSG_DOWNLOAD)$(URL($*)); \
test -d $$dir || git clone $(URL($*)) $$dir; \
test -d $$dir || git clone $(URL($*)) $$dir &> >(sed 's/^/$(MSG_GIT)/'); \
$(MSG_UPDATE)$$dir; \
cd $$dir && git fetch && git reset -q --hard HEAD && git checkout -q $(REV($*))