diff options
author | Loïc Hoguin <[email protected]> | 2014-07-20 14:06:53 +0200 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2014-07-20 14:06:53 +0200 |
commit | 0dc1feba668a4e86d4b2a4bb4bcb40a48822490a (patch) | |
tree | 3cb88fc835722ca91ceaeeb903396e0ee1b3b5e0 /core | |
parent | f2e7ca3b3d9562b186fb276c72ee7f45a8304c32 (diff) | |
download | erlang.mk-0dc1feba668a4e86d4b2a4bb4bcb40a48822490a.tar.gz erlang.mk-0dc1feba668a4e86d4b2a4bb4bcb40a48822490a.tar.bz2 erlang.mk-0dc1feba668a4e86d4b2a4bb4bcb40a48822490a.zip |
Change package index file format and deps handling
This commit adds two columns to the package index file: the
method used to retrieve the dependency (only git supported
at this point) and the preferred version (a commit or
equivalent in the case of git).
Now that all the necessary information is in the package
index file, the dep_* lines become optional. It is possible
to fetch dependencies by just listing it in the DEPS variable,
for example this would fetch both cowboy and jsx:
DEPS = cowboy jsx
The dep_* line can be used to override the defaults. It now
takes three values, the method used to retrieve the dependency,
the repository URL and the preferred version. The only change
from before is the first value being added.
Diffstat (limited to 'core')
-rw-r--r-- | core/deps.mk | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/core/deps.mk b/core/deps.mk index 27eefe5..9491b3f 100644 --- a/core/deps.mk +++ b/core/deps.mk @@ -22,10 +22,10 @@ endif endif export ERL_LIBS -PKG_FILE ?= $(CURDIR)/.erlang.mk.packages.v1 +PKG_FILE ?= $(CURDIR)/.erlang.mk.packages.v2 export PKG_FILE -PKG_FILE_URL ?= https://raw.githubusercontent.com/extend/erlang.mk/master/packages.v1.tsv +PKG_FILE_URL ?= https://raw.githubusercontent.com/extend/erlang.mk/master/packages.v2.tsv # Core targets. @@ -42,17 +42,20 @@ distclean:: distclean-deps distclean-pkg # Deps related targets. +define dep_fetch_git + git clone -n -- $(2) $(DEPS_DIR)/$(1) + cd $(DEPS_DIR)/$(1) ; git checkout -q $(3) +endef + define dep_fetch @mkdir -p $(DEPS_DIR) -ifeq (,$(findstring pkg://,$(word 1,$(dep_$(1))))) - git clone -n -- $(word 1,$(dep_$(1))) $(DEPS_DIR)/$(1) -else +ifeq (,$(dep_$(1))) @if [ ! -f $(PKG_FILE) ]; then $(call core_http_get,$(PKG_FILE),$(PKG_FILE_URL)); fi - git clone -n -- `awk 'BEGIN { FS = "\t" }; \ - $$$$1 == "$(subst pkg://,,$(word 1,$(dep_$(1))))" { print $$$$2 }' \ - $(PKG_FILE)` $(DEPS_DIR)/$(1) + $(eval DEP_FETCH_PKG := $(shell awk 'BEGIN { FS = "\t" }; $$1 == "$(1)" { print $$2 " " $$3 " "$$4 }' $(PKG_FILE))) + $(call dep_fetch_$(word 1,$(DEP_FETCH_PKG)),$(1),$(word 2,$(DEP_FETCH_PKG)),$(word 3,$(DEP_FETCH_PKG))) +else + $(call dep_fetch_$(word 1,$(dep_$(1))),$(1),$(word 2,$(dep_$(1))),$(word 3,$(dep_$(1)))) endif - cd $(DEPS_DIR)/$(1) ; git checkout -q $(word 2,$(dep_$(1))) endef define dep_target @@ -73,17 +76,17 @@ $(PKG_FILE): pkg-list: $(PKG_FILE) @cat $(PKG_FILE) | awk 'BEGIN { FS = "\t" }; { print \ "Name:\t\t" $$1 "\n" \ - "Repository:\t" $$2 "\n" \ - "Website:\t" $$3 "\n" \ - "Description:\t" $$4 "\n" }' + "Repository:\t" $$3 "\n" \ + "Website:\t" $$5 "\n" \ + "Description:\t" $$6 "\n" }' ifdef q pkg-search: $(PKG_FILE) @cat $(PKG_FILE) | grep -i ${q} | awk 'BEGIN { FS = "\t" }; { print \ "Name:\t\t" $$1 "\n" \ - "Repository:\t" $$2 "\n" \ - "Website:\t" $$3 "\n" \ - "Description:\t" $$4 "\n" }' + "Repository:\t" $$3 "\n" \ + "Website:\t" $$5 "\n" \ + "Description:\t" $$6 "\n" }' else pkg-search: @echo "Usage: make pkg-search q=STRING" |