Skip to content

Commit

Permalink
Merge pull request #15 from andrei-mihaila/master
Browse files Browse the repository at this point in the history
Make the Elvis version configurable
  • Loading branch information
elbrujohalcon authored Aug 8, 2022
2 parents ac5ad77 + 80c48ba commit bb60fdb
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 9 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
# Change Log
## [1.1.0](https://github.com/inaka/elvis.mk/tree/1.1.0) (2022-08-05)
**Implemented enhancements:**

- Make the Elvis version configurable [\#14](https://github.com/inaka/elvis.mk/issues/14)
- download the source code and compile Elvis (as upstream no longer provides an executable)

## [1.0.0](https://github.com/inaka/elvis.mk/tree/1.0.0) (2016-04-12)
**Implemented enhancements:**
Expand Down
8 changes: 7 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,13 @@ following in your Makefile:
```make
BUILD_DEPS = elvis_mk

dep_elvis_mk = git https://github.com/inaka/elvis.mk.git 1.0.0
# defaults to 1.1.0
# the version must be a tag in the repo
# that Elvis version must compile with the installed Erlang / OTP
# don't forget to do `make distclean` after changing the version
# ELVIS_VERSION = 1.0.1 # downgrade

dep_elvis_mk = git https://github.com/inaka/elvis.mk.git 1.1.0

DEP_PLUGINS = elvis_mk
```
Expand Down
22 changes: 14 additions & 8 deletions plugins.mk
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,16 @@
.PHONY: elvis distclean-elvis

# Configuration.
ELVIS_VERSION=0.2.11
ELVIS_VERSION ?= 1.1.0
ELVIS_CONFIG ?= $(CURDIR)/elvis.config

ELVIS ?= $(CURDIR)/elvis
export ELVIS

ELVIS_URL ?= https://github.com/inaka/elvis/releases/download/$(ELVIS_VERSION)/elvis
ELVIS_CONFIG_URL ?= https://github.com/inaka/elvis/releases/download/$(ELVIS_VERSION)/elvis.config
ELVIS_URL ?= https://github.com/inaka/elvis/archive/refs/tags/$(ELVIS_VERSION).tar.gz
ELVIS_OPTS ?=
ELVIS_BUILD_DIR ?= $(CURDIR)/_build
ELVIS_CODE_ARCHIVE = $(ELVIS_VERSION).tar.gz

# Core targets.

Expand All @@ -26,13 +27,18 @@ distclean:: distclean-elvis
# Plugin-specific targets.

$(ELVIS):
$(gen_verbose) $(call core_http_get,$(ELVIS),$(ELVIS_URL))
$(gen_verbose) mkdir -p $(ELVIS_BUILD_DIR)
$(gen_verbose) $(call core_http_get,$(ELVIS_BUILD_DIR)/$(ELVIS_CODE_ARCHIVE),$(ELVIS_URL))
$(gen_verbose) cd $(ELVIS_BUILD_DIR) && \
tar -xzf $(ELVIS_CODE_ARCHIVE) && \
cd elvis-$(ELVIS_VERSION) && \
rebar3 escriptize
$(gen_verbose) cp $(ELVIS_BUILD_DIR)/elvis-$(ELVIS_VERSION)/_build/default/bin/elvis $(ELVIS)
$(gen_verbose) cp --no-clobber $(ELVIS_BUILD_DIR)/elvis-$(ELVIS_VERSION)/elvis.config $(ELVIS_CONFIG)
$(verbose) chmod +x $(ELVIS)
$(gen_verbose) rm -rf $(ELVIS_BUILD_DIR)

$(ELVIS_CONFIG):
$(verbose) $(call core_http_get,$(ELVIS_CONFIG),$(ELVIS_CONFIG_URL))

elvis: $(ELVIS) $(ELVIS_CONFIG)
elvis: $(ELVIS)
$(verbose) $(ELVIS) rock -c $(ELVIS_CONFIG) $(ELVIS_OPTS)

distclean-elvis:
Expand Down

0 comments on commit bb60fdb

Please sign in to comment.