Skip to content

Commit 737fc85

Browse files
Make bh/venv's ability to skip existing packages configurable, and turn it off by default (#55)
1 parent e557015 commit 737fc85

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

Makefile.venv

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ BUILD_HARNESS_VENV:=$(CURDIR)/$(BUILD_HARNESS_VENV_NAME)
88
WITH_BH_VENV=$(shell test -f $(BUILD_HARNESS_REQ) && echo "source $(BUILD_HARNESS_VENV)/bin/activate 2>/dev/null &&")
99
LOCAL_PYTHON_VERSION=$(shell python -c 'import platform; ver=int(platform.python_version()[0]); print(ver)' 2>/dev/null)
1010

11+
BUILD_HARNESS_VENV_SKIP_EXISTING=false
12+
1113
# This doesn't conform to extreme edge-use-cases of modules/python/Makefile.env, but should cover >99% of use.
1214
LOCAL_PROJECT_PYTHON_VERSION=$(shell if [ -e $(CURDIR)/Pipfile ]; then awk '/python_version*([0-9\.]*)/' Pipfile | awk 'match($$0, /[0-9\.]+/) {print substr($$0, RSTART, RLENGTH)}'; else echo ""; fi)
1315
LOCAL_PROJECT_PYTHON_VERSION_MAJOR=$(shell echo "$(LOCAL_PROJECT_PYTHON_VERSION)" | cut -c1)
@@ -42,14 +44,19 @@ $(BUILD_HARNESS_REQ): $(BUILD_HARNESS_REQ_TEMPLATE)
4244

4345
$(BUILD_HARNESS_PIPFILE): $(BUILD_HARNESS_REQ)
4446
@if [ -f $@ ]; then echo "Removing previously generated build-harness Pipfile" && rm $@; fi
45-
@if [ -n "$$(which pipenv 2>/dev/null)" ]; then \
47+
if [ -n "$$(which pipenv 2>/dev/null)" ]; then \
4648
echo "Generating $@"; \
4749
if [ -n "$(LOCAL_PROJECT_PYTHON_VERSION)" ]; then \
4850
echo "[requires]" >> $@; \
4951
echo "python_version = \"$(LOCAL_PROJECT_PYTHON_VERSION)\"" >> $@; \
5052
fi; \
5153
echo "[packages]" >> $@; \
52-
cat $(BUILD_HARNESS_REQ) | xargs -I % bash -c 'if [ -z "$$(which % 2>/dev/null)" ]; then echo "% = \"*\"" >> $@; fi'; \
54+
if [ "$(BUILD_HARNESS_VENV_SKIP_EXISTING)" = true ] ; then \
55+
echo "Will skip required packages that exist in your path..."; \
56+
cat $(BUILD_HARNESS_REQ) | xargs -I % bash -c 'if [ -z "$$(which % 2>/dev/null)" ]; then echo "% = \"*\"" >> $@; fi'; \
57+
else \
58+
cat $(BUILD_HARNESS_REQ) | xargs -I % bash -c 'echo "% = \"*\"" >> $@'; \
59+
fi; \
5360
fi
5461

5562
$(BUILD_HARNESS_VENV): $(BUILD_HARNESS_REQ) $(BUILD_HARNESS_PIPFILE)

0 commit comments

Comments
 (0)