Page MenuHomeFreeBSD

D4603.id11376.diff
No OneTemporary

D4603.id11376.diff

Index: Mk/bsd.sites.mk
===================================================================
--- Mk/bsd.sites.mk
+++ Mk/bsd.sites.mk
@@ -519,6 +519,7 @@
# Using the name of a branch here is incorrect. It is
# possible to do GH_TAGNAME= GIT_HASH to do a snapshot.
# default: ${DISTVERSION}
+# GH_TUPLE - above shortened to account:project:tagname[:group]
#
.if defined(USE_GITHUB)
. if defined(GH_TAGNAME) && ${GH_TAGNAME} == master
@@ -526,6 +527,70 @@
Must use a tag or commit hash so the upstream does \
not "reroll" as soon as the branch is updated
. endif
+. if defined(GH_TUPLE)
+GH_ACCOUNT+= ${GH_TUPLE:C@^([^:]*):([^:]*):([^:]*)((:[^:]*)?).*@\1\4@}
+GH_PROJECT+= ${GH_TUPLE:C@^([^:]*):([^:]*):([^:]*)((:[^:]*)?).*@\2\4@}
+GH_TAGNAME+= ${GH_TUPLE:C@^([^:]*):([^:]*):([^:]*)((:[^:]*)?).*@\3\4@}
+
+gh-show-latest:
+ @${ECHO_MSG} "--begin latest revisions--"; \
+ for tuple in ${GH_TUPLE}; do \
+ oIFS="$$IFS"; IFS=":"; set -- $$tuple; IFS="$$oIFS"; \
+ account=$$1; shift; project=$$1; shift; tagname=$$1; shift; \
+ other=`echo "$$@" | ${SED} -e 's/ /:/g'`; \
+ [ -n "$$other" ] && other=":$$other"; \
+ rev=`git ls-remote https://github.com/$${account}/$${project}.git HEAD | ${SED} -E "s/^(.......).*/\\1/g"`; \
+ echo "GH_TUPLE+= $$account:$$project:$$rev$$other"; \
+ done; \
+ ${ECHO_MSG} "--end latest revisions--"
+
+gh-show-changed:
+ @${ECHO_MSG} "--begin changed revisions--"; \
+ for tuple in ${GH_TUPLE}; do \
+ oIFS="$$IFS"; IFS=":"; set -- $$tuple; IFS="$$oIFS"; \
+ account=$$1; shift; project=$$1; shift; tagname=$$1; shift; \
+ other=`echo "$$@" | ${SED} -e 's/ /:/g'`; \
+ [ -n "$$other" ] && other=":$$other"; \
+ rev=`git ls-remote https://github.com/$${account}/$${project}.git HEAD | ${SED} -E "s/^(.......).*/\\1/g"`; \
+ [ $$tagname != "$$rev" ] && \
+ echo "GH_TUPLE+= $$account:$$project:$$rev$$other"; \
+ done; \
+ ${ECHO_MSG} "--end changed revisions--"
+
+gh-update:
+ @${ECHO_MSG} "--begin updating revisions--"; \
+ cnt_updated=0; \
+ cnt_rejected=0; \
+ for tuple in ${GH_TUPLE}; do \
+ oIFS="$$IFS"; IFS=":"; set -- $$tuple; IFS="$$oIFS"; \
+ account=$$1; shift; project=$$1; shift; tagname=$$1; shift; \
+ other=`echo "$$@" | ${SED} -e 's/ /:/g'`; \
+ [ -n "$$other" ] && other=":$$other"; \
+ rev=`git ls-remote https://github.com/$${account}/$${project}.git HEAD | ${SED} -E "s/^(.......).*/\\1/g"`; \
+ [ $$tagname != "$$rev" ] && \
+ (([ -f Makefile.orig ] && ${DIFF} Makefile Makefile.orig > /dev/null) || ${CP} Makefile Makefile.orig) && \
+ while true; do \
+ answer=$$all; \
+ if [ -z "$$answer" ]; then \
+ read -p "Revision of $$account:$$project changed: $$tagname -> $$rev [(a)ccept, (r)eject, accept al(l), re(j)ect all, a(b)ort]? " answer; \
+ fi; \
+ case $$answer in \
+ a) echo "updating $$account:$$project:$$tagname$$other -> $$account:$$project:$$rev$$other"; \
+ ${REINPLACE_CMD} -i '' -e "s/:$$tagname/:$$rev/" Makefile; \
+ cnt_updated=$$((cnt_updated+1)); \
+ break;; \
+ r) echo "rejecting $$account:$$project:$$tagname$$other -> $$account:$$project:$$rev$$other"; \
+ cnt_rejected=$$((cnt_rejected=+1)); \
+ break;; \
+ l) all=a; continue;; \
+ j) all=r; continue;; \
+ b) return;; \
+ *) continue;; \
+ esac; \
+ done; \
+ done; \
+ ${ECHO_MSG} "--end updating revisions: updated $$cnt_updated, rejected $$cnt_rejected--"
+.endif
# We are cheating and using backend URLS for Github here. See ports/194898
# comment #15 for explanation as to why and how to deal with it if it breaks.
MASTER_SITE_GITHUB+= https://codeload.github.com/%SUBDIR%

File Metadata

Mime Type
text/plain
Expires
Mon, Apr 13, 7:37 AM (15 h, 38 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31385909
Default Alt Text
D4603.id11376.diff (3 KB)

Event Timeline