project-dirs.mk / pgit.sh: Add support for offlining projects

This adds support for the variable OFFLINE_PROJECTS in projects-dir.mk and the
PGIT_IGNORE environment variable. Both go hand in hand and do what their names
insinuate. OFFLINE_PROJECTS is initialized from EXCLUDE_FROM_BUILD, which in
turn is initialized from exclude.txt and friends.

Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
Jan Lindemann 2020-05-10 08:07:22 +00:00
commit 5e9168480a
2 changed files with 9 additions and 0 deletions

View file

@ -55,6 +55,7 @@ EXCLUDES_FILES = $(wildcard exclude-$(shell $(GET_OS_SH) name 2>/d
ifneq ($(EXCLUDES_FILES),) ifneq ($(EXCLUDES_FILES),)
EXCLUDE_FROM_BUILD += $(shell sed 's/\#.*//g' $(EXCLUDES_FILES)) EXCLUDE_FROM_BUILD += $(shell sed 's/\#.*//g' $(EXCLUDES_FILES))
endif endif
OFFLINE_PROJECTS ?= $(EXCLUDE_FROM_BUILD)
TEXT_FILES_CACHE ?= text-files.txt TEXT_FILES_CACHE ?= text-files.txt
@ -99,6 +100,10 @@ else
export PGIT_CLONE_FROM_USER = $(JANWARE_USER) export PGIT_CLONE_FROM_USER = $(JANWARE_USER)
endif endif
ifneq ($(OFFLINE_PROJECTS),)
export PGIT_IGNORE = $(OFFLINE_PROJECTS)
endif
ifneq ($(EXCLUDE_FROM_BUILD),) ifneq ($(EXCLUDE_FROM_BUILD),)
PROJECTS_PY_EXTRA_BUILD_OPTS += --exclude "$(EXCLUDE_FROM_BUILD)" PROJECTS_PY_EXTRA_BUILD_OPTS += --exclude "$(EXCLUDE_FROM_BUILD)"
endif endif

View file

@ -113,6 +113,7 @@ clone()
local toref=${refspec[2]} local toref=${refspec[2]}
local login=$JANWARE_USER local login=$JANWARE_USER
local projects="$PGIT_CLONE_PROJECTS" local projects="$PGIT_CLONE_PROJECTS"
local ignore="$PGIT_IGNORE"
[ "$login" ] || login=`whoami` [ "$login" ] || login=`whoami`
[ "$fromuser" ] || fromuser=`whoami` [ "$fromuser" ] || fromuser=`whoami`
[ "$fromref" ] || fromref=master [ "$fromref" ] || fromref=master
@ -124,6 +125,9 @@ clone()
n_projects=`echo $projects | wc -w` n_projects=`echo $projects | wc -w`
if [ "$PGIT_KEEP_GOING" != y ]; then set -e; fi if [ "$PGIT_KEEP_GOING" != y ]; then set -e; fi
for p in $projects; do for p in $projects; do
if echo $ignore | grep -q "\b$p\b"; then
continue
fi
cur=`expr $cur + 1` cur=`expr $cur + 1`
local pullurl=ssh://$login@git.janware.com/srv/git/$fromuser/proj/$p local pullurl=ssh://$login@git.janware.com/srv/git/$fromuser/proj/$p
local pushurl=ssh://$login@git.janware.com/srv/git/$login/proj/$p local pushurl=ssh://$login@git.janware.com/srv/git/$login/proj/$p