Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F152041922
D4603.id11376.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
D4603.id11376.diff
View Options
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
Details
Attached
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)
Attached To
Mode
D4603: Implemented gh-update
Attached
Detach File
Event Timeline
Log In to Comment