mirror of
https://github.com/correl/melpa.git
synced 2024-12-22 19:17:27 +00:00
Add sandbox rule for testing
Now `make sandbox' starts up Emacs in a sandbox environment for MELPA packages. This is useful for testing new or modified recipes. Typical usage is like: $ make recipes/RECIPE && make packages/archive-contents && make sandbox
This commit is contained in:
parent
bf5d29710a
commit
3399a134da
1 changed files with 23 additions and 6 deletions
29
Makefile
29
Makefile
|
@ -6,16 +6,15 @@ WORKDIR := ./working
|
||||||
WEBROOT := $$HOME/www
|
WEBROOT := $$HOME/www
|
||||||
EMACS ?= emacs
|
EMACS ?= emacs
|
||||||
SLEEP ?= 0
|
SLEEP ?= 0
|
||||||
|
SANDBOX := ./sandbox
|
||||||
EVAL := $(EMACS)
|
|
||||||
|
|
||||||
## Check for needing to initialize CL-LIB from ELPA
|
## Check for needing to initialize CL-LIB from ELPA
|
||||||
NEED_CL-LIB := $(shell $(EMACS) --no-site-file --batch --eval '(prin1 (version< emacs-version "24.3"))')
|
NEED_CL-LIB := $(shell $(EMACS) --no-site-file --batch --eval '(prin1 (version< emacs-version "24.3"))')
|
||||||
ifeq ($(NEED_CL-LIB), t)
|
ifeq ($(NEED_CL-LIB), t)
|
||||||
EVAL := $(EVAL) --eval "(package-initialize)"
|
EMACS := $(EMACS) --eval "(package-initialize)"
|
||||||
endif
|
endif
|
||||||
|
|
||||||
EVAL := $(EVAL) --no-site-file --batch -l package-build.el --eval
|
EVAL := $(EMACS) --no-site-file --batch -l package-build.el --eval
|
||||||
|
|
||||||
TIMEOUT := $(shell which timeout && echo "-k 60 600")
|
TIMEOUT := $(shell which timeout && echo "-k 60 600")
|
||||||
|
|
||||||
|
@ -41,17 +40,25 @@ clean-json:
|
||||||
@echo " • Removing json files ..."
|
@echo " • Removing json files ..."
|
||||||
-rm -vf html/archive.json html/recipes.json
|
-rm -vf html/archive.json html/recipes.json
|
||||||
|
|
||||||
|
clean-sandbox:
|
||||||
|
@echo " • Removing sandbox files ..."
|
||||||
|
if [ -d '$(SANDBOX)' ]; then \
|
||||||
|
rm -rfv '$(SANDBOX)/elpa'; \
|
||||||
|
rmdir '$(SANDBOX)'; \
|
||||||
|
fi
|
||||||
|
|
||||||
sync:
|
sync:
|
||||||
rsync -avz --delete $(PKGDIR) $(HTMLDIR)/* $(WEBROOT)/
|
rsync -avz --delete $(PKGDIR) $(HTMLDIR)/* $(WEBROOT)/
|
||||||
chmod -R go+rx $(WEBROOT)/packages/*
|
chmod -R go+rx $(WEBROOT)/packages/*
|
||||||
|
|
||||||
|
|
||||||
clean: clean-working clean-packages clean-json
|
clean: clean-working clean-packages clean-json clean-sandbox
|
||||||
|
|
||||||
packages: $(RCPDIR)/*
|
packages: $(RCPDIR)/*
|
||||||
|
|
||||||
packages/archive-contents: packages/*.entry
|
packages/archive-contents: packages/*.entry
|
||||||
@echo " • Updating $@ ..."
|
@echo " • Updating $@ ..."
|
||||||
|
$(EVAL) '(package-build-dump-archive-contents)'
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
$(EVAL) '(package-build-cleanup)'
|
$(EVAL) '(package-build-cleanup)'
|
||||||
|
@ -84,5 +91,15 @@ $(RCPDIR)/%: .FORCE
|
||||||
@echo
|
@echo
|
||||||
|
|
||||||
|
|
||||||
.PHONY: clean build index html json
|
## Sandbox
|
||||||
|
sandbox:
|
||||||
|
@echo " • Building sandbox ..."
|
||||||
|
mkdir -p $(SANDBOX)
|
||||||
|
$(EMACS) -Q \
|
||||||
|
--eval '(setq user-emacs-directory "$(SANDBOX)")' \
|
||||||
|
-l package \
|
||||||
|
--eval "(add-to-list 'package-archives '(\"melpa\" . \"http://melpa.milkbox.net/packages/\") t)" \
|
||||||
|
--eval "(add-to-list 'package-archives '(\"sandbox\" . \"$(shell pwd)/$(PKGDIR)/\") t)"
|
||||||
|
|
||||||
|
.PHONY: clean build index html json sandbox
|
||||||
.FORCE:
|
.FORCE:
|
||||||
|
|
Loading…
Reference in a new issue