on develop help sign in
gogol/gen/Makefile
65 lines 1.5 kB history raw
1SHELL := /usr/bin/env bash
2TOP := ..
3BIN := bin
4MODEL_DIR := model
5OUT_DIR := ..
7define version =
8$(shell sed -n 's/^version: *\([0-9]*\.[0-9]*\.[0-9]\).*$$/\1/p' $(1))
9endef
11VERSION = $(shell sed -n 's/^version: *\(.*\)$$/\1/p' gogol-gen.cabal)
12CORE_VERSION = $(call version,$(TOP)/core/gogol-core.cabal)
13CLIENT_VERSION = $(call version,$(TOP)/gen/gogol-gen.cabal)
15MODELS ?= $(shell find $(MODEL_DIR) -type f -name '*.json' | sort)
17.PHONY: gen format $(BIN)/gogol-gen
19release: gen format
21gen: $(BIN)/gogol-gen $(MODEL_DIR)
22 $(BIN)/gogol-gen \
23 --out=$(OUT_DIR) \
24 --library-version=$(VERSION) \
25 --client-version=$(CLIENT_VERSION) \
26 --core-version=$(CORE_VERSION) \
27 --annexes=annex \
28 --templates=template \
29 --static=static \
30 $(addprefix --model=,$(MODELS))
32format:
33 @echo -e '\nFormatting...'
34 @find $(wildcard $(OUT_DIR)/gogol-*/gen) \
35 -type f \
36 -name '*.hs' \
37 -printf ' -> %p\n' \
38 -exec stylish-haskell -i {} \;
40$(BIN)/gogol-gen: $(BIN)
41 stack build gogol-gen --nix --copy-bins --local-bin-path $(BIN)
43$(BIN):
44 mkdir $@
46clean:
47 stack clean
48 rm -rf $(MODEL_DIR)
50full-clean: clean
51 rm -rf vendor model
53$(MODEL_DIR): vendor/google-api-go-client
54 @./script/copy-models $< $@
56vendor/google-api-go-client:
57 git clone https://github.com/google/google-api-go-client $@
59.PHONY: audit
61ACTUAL = $(addsuffix \\n,$(sort $(notdir $(MODELS))))
62EXPECT = $(addsuffix -api.json\\n,$(sort $(notdir $(basename $(wildcard annex/*.json)))))
64audit: $(MODEL_DIR)
65 @diff -B -y <(echo -e $(ACTUAL)) <(echo -e $(EXPECT))