reagent/Makefile

109 lines
2.6 KiB
Makefile
Raw Normal View History

2013-12-16 22:19:36 +00:00
VERSION = 0.4.3
REACT_VERSION = 0.12.1
2013-12-16 22:19:36 +00:00
PROF =
PORT = 3449
2013-12-16 22:19:36 +00:00
SITEDIR = outsite/public
OUTPUTDIR = $(SITEDIR)/js/out
2013-12-16 22:19:36 +00:00
# convenience shortcuts for continous building
##############################################
2013-12-16 22:19:36 +00:00
# development build with auto-reloading
run: figwheel
2013-12-16 22:19:36 +00:00
# development build with auto-reloading and site generation
runsite:
@$(MAKE) run PROF=dev,site,$(PROF)
2013-12-16 22:19:36 +00:00
# production build with auto-rebuild
runprod: clean
@$(MAKE) serve-site PROF=prod,$(PROF)
2013-12-16 22:19:36 +00:00
# production build with auto-rebuild and testing
runprodtest: clean
@$(MAKE) serve-site PROF=prod,test,$(PROF)
2013-12-16 22:19:36 +00:00
clean:
lein clean
2014-01-17 15:00:42 +00:00
## Subtargets
figwheel: trigger-build
@echo "Will start figwheel server at:\nhttp://127.0.0.1:$(PORT)\n\n"
lein with-profile $(PROF), figwheel
serve-site: trigger-build
@echo "Starting site at:\nhttp://127.0.0.1:$(PORT)/public\n\n"
2014-01-24 10:03:01 +00:00
( trap "kill 0" SIGINT SIGTERM EXIT; \
( cd $(SITEDIR)/.. && python -m SimpleHTTPServer $(PORT) & ); \
lein with-profile $(PROF), cljsbuild auto )
trigger-build:
# always trigger build to make sure page-generation works
@echo "(ns empty.generated.ns)" > demo/empty.cljs
@(echo "/* Generated, do not modify */\n\n" && \
cat examples/todomvc/todos.css examples/simple/example.css) \
> site/public/css/examples.css
2014-01-24 10:03:01 +00:00
2013-12-16 22:19:36 +00:00
## gh-pages support
###################
2013-12-16 22:19:36 +00:00
# build site and push upstream to the gh-pages branch
push-gh-pages: build-gh-pages
git push origin gh-pages
build-gh-pages: gen-site gh-pages-add
gen-site: clean
lein with-profile prod cljsbuild once
# copy contents of $(SITEDIR) to branch gh-pages
gh-pages-add:
# sanity check
test -f $(SITEDIR)/index.html
test ! -e $(OUTPUTDIR)
# make sure gh-pages branch exists
git show-branch gh-pages || true | git mktree | \
xargs git commit-tree | xargs git branch gh-pages
# clone gh-pages branch, and commit site to that
cd $(SITEDIR) && \
rm -rf .git tmp && \
git clone ../.. -lnb gh-pages tmp && \
mv tmp/.git . && \
git add . && git commit -m "Updated" && \
git push && rm -rf .git tmp
## Misc utilities
#################
2013-12-16 22:19:36 +00:00
show-outdated:
lein ancient :all
download-react:
curl -L "http://fb.me/react-$(REACT_VERSION).js" \
-o vendor/reagent/react.js
curl -L "http://fb.me/react-$(REACT_VERSION).min.js" \
-o vendor/reagent/react.min.js
2013-12-16 22:19:36 +00:00
setversion:
2013-12-16 22:22:54 +00:00
version=$(VERSION); \
2014-01-26 08:51:36 +00:00
find . -name project.clj -o -name README.md | \
2014-01-17 10:12:11 +00:00
xargs -n1 sed -i "" -e 's,\(reagent "\)\([^"]*\)",\1'"$$version"'"',g
2013-12-16 22:19:36 +00:00
tag: setversion
if git rev-parse v$(VERSION) 2>/dev/null; then \
echo "Tag already exists"; \
exit 1; \
else \
2014-01-26 08:51:36 +00:00
git commit --allow-empty -a -v -e -m"Version "$(VERSION) && \
2013-12-16 22:19:36 +00:00
git tag v$(VERSION); \
fi