Revision: 21236
          http://gar.svn.sourceforge.net/gar/?rev=21236&view=rev
Author:   pfelecan
Date:     2013-06-01 09:05:51 +0000 (Sat, 01 Jun 2013)
Log Message:
-----------
.buildsys/v2: add support for GitHub hosted repositories; for the
documentation, see: 
https://sourceforge.net/apps/trac/gar/wiki/GAR%20Variable%20Reference#DownloadSettings

Modified Paths:
--------------
    csw/mgar/gar/v2/gar.conf.mk
    csw/mgar/gar/v2/gar.lib.mk

Modified: csw/mgar/gar/v2/gar.conf.mk
===================================================================
--- csw/mgar/gar/v2/gar.conf.mk 2013-06-01 08:47:58 UTC (rev 21235)
+++ csw/mgar/gar/v2/gar.conf.mk 2013-06-01 09:05:51 UTC (rev 21236)
@@ -760,6 +760,21 @@
 SF_PROJECT_SHOWFILE ?= http://sourceforge.net/project/showfiles.php?group_id
 UPSTREAM_USE_SF        ?= 0
 
+# Git Hub (only if GIHUB_USER variable is defined)
+# see http://developer.github.com/v3/repos/contents/#get-archive-link
+# and https://help.github.com/articles/downloading-files-from-the-command-line
+GITHUB_HOST            =       api.github.com
+ifdef GITHUB_USER
+GITHUB_PROJECT ?=      $(NAME)
+GITHUB_BALL            ?=      tar
+GITHUB_BRANCH  ?=      master
+GITHUB_MIRROR  ?=      
https://$(GITHUB_HOST)/repos/$(GITHUB_USER)/$(GITHUB_PROJECT)/$(GITHUB_BALL)ball/$(GITHUB_BRANCH)
+GITHUB_BALL_EXT        :=      .$(GITHUB_BALL)
+ifeq ($(GITHUB_BALL),tar)
+GITHUB_BALL_EXT        :=      $(GITHUB_BALL_EXT).gz
+endif
+endif
+
 # Google Code
 GOOGLE_PROJECT ?= $(NAME)
 GOOGLE_MIRROR  ?= http://$(GOOGLE_PROJECT).googlecode.com/files/

Modified: csw/mgar/gar/v2/gar.lib.mk
===================================================================
--- csw/mgar/gar/v2/gar.lib.mk  2013-06-01 08:47:58 UTC (rev 21235)
+++ csw/mgar/gar/v2/gar.lib.mk  2013-06-01 09:05:51 UTC (rev 21236)
@@ -31,9 +31,9 @@
 # add these 'dynamic script' targets to our fetch list
 DYNURLS := $(foreach DYN,$(DYNSCRIPTS),dynscr://$(DYN))
 
-$(foreach M,$(MASTER_SITES),$(if $(filter %/,$M),,$(error MASTER_SITES must 
contain only URLs ending in a / wheres this did not: $M)))
+$(foreach M,$(MASTER_SITES),$(if $(findstring $(GITHUB_HOST),$(M)),,$(if 
$(filter %/,$M),,$(error MASTER_SITES must contain only URLs ending in a / 
wheres this did not: $M))))
 
-URLS := $(foreach SITE,$(FILE_SITES) $(MASTER_SITES),$(addprefix 
$(SITE),$(DISTFILES))) $(foreach SITE,$(FILE_SITES) $(PATCH_SITES) 
$(MASTER_SITES),$(addprefix $(SITE),$(ALLFILES_PATCHFILES))) $(DYNURLS)
+URLS := $(foreach SITE,$(FILE_SITES) $(MASTER_SITES),$(if $(findstring 
$(GITHUB_HOST),$(SITE)),$(SITE),$(addprefix $(SITE),$(DISTFILES)))) $(foreach 
SITE,$(FILE_SITES) $(PATCH_SITES) $(MASTER_SITES),$(if $(findstring 
$(GITHUB_HOST),$(SITE)),$(SITE),$(addprefix $(SITE),$(ALLFILES_PATCHFILES)))) 
$(DYNURLS)
 
 define gitsubst
 $(subst git-git,git,$(if $(findstring $(1)://,$(2)),$(patsubst 
$(1)%,git-$(1)%,$(call URLSTRIP,$(2)))))
@@ -50,14 +50,18 @@
 # 1) we have to strip the colon from the URLs
 # 2) the download is very costly with bigger Makefiles as they will be
 #    re-evaluated for every URL (nested gmake invocation, room for improvement)
-$(DOWNLOADDIR)/%: _FLIST=$(filter %/$*,$(URLS))
+$(DOWNLOADDIR)/%: _FLIST=$(filter %/$*,$(URLS)) $(foreach URL,$(URLS),$(if 
$(findstring $(GITHUB_HOST),$(URL)),$(URL),))
 $(DOWNLOADDIR)/%:  
        $(if $(_FLIST),,$(error INTERNAL ERROR: The file $* is requested but 
not in the list of generated URLs))
        @if test -f $(COOKIEDIR)/checksum-$*; then : ; else \
                echo " ==> Grabbing $@"; \
-               ( for i in $(filter %/$*,$(URLS)); do  \
+               ( for i in $(filter %/$*,$(URLS)) $(foreach URL,$(URLS),$(if 
$(findstring $(GITHUB_HOST),$(URL)),$(URL),)); do  \
                        echo "  ==> Trying $$i"; \
                        $(MAKE) -s `echo $$i | tr -d :` || continue; \
+                       case $$i in \
+                               *$(GITHUB_HOST)*) \
+                               mv $(PARTIALDIR)/$(GITHUB_BRANCH) 
$(PARTIALDIR)/$(DISTNAME)$(GITHUB_BALL_EXT) ;; \
+                       esac; \
                        mv $(PARTIALDIR)/$* $@; \
                        break; \
                done; ) 2>&1 | grep -v '^$(MAKE)'; \

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

_______________________________________________
devel mailing list
[email protected]
https://lists.opencsw.org/mailman/listinfo/devel

Reply via email to