summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile48
1 files changed, 48 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..23e5ed0
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,48 @@
+CONFIG=config.json
+TARGET=ngxconf
+NGXCONF=nginx.conf
+GENERATED=templates.go
+SOURCES=$(wildcard *.go) $(GENERATED)
+
+all: build config
+ @echo "Run 'make preview' to view the rendered template or 'make save' to save it in $(NGXCONF)"
+
+build: $(TARGET)
+
+$(TARGET): $(SOURCES)
+ @echo "Generating Go sources..."
+ @go generate || echo "Failed. We need at least Go version 1.4 to generate code. $(TARGET) still works but you ned to specify the full path to your template directory."
+ go build
+
+config: $(CONFIG)
+
+$(CONFIG): $(TARGET)
+ ./$(TARGET) -genconfig $(CONFIG)
+ @echo ""
+
+save: build
+ @if [ ! -f $(CONFIG) ]; then make config; fi
+ ./$(TARGET) -config $(CONFIG) > $(NGXCONF)
+
+preview: build
+ @if [ ! -f $(CONFIG) ]; then make config; fi
+ @./$(TARGET) -config $(CONFIG)
+
+edit: $(CONFIG)
+ $(EDITOR) $(CONFIG)
+
+clean:
+ $(RM) $(RMFLAGS) $(CONFIG) $(TARGET) $(NGXCONF) $(GENERATED)
+ @echo "package main" > $(GENERATED); \
+ echo "// To be replaced by go generate" >> $(GENERATED); \
+ echo "func isGenerated() bool { return false }" >> $(GENERATED); \
+ echo "func getTemplate() string { return \"\" }" >> $(GENERATED)
+
+help:
+ @echo "Generates a standard nginx config file"
+ @echo "make build -- compile"
+ @echo "make config -- generate config"
+ @echo "make save -- render template and save in $(NGXCONF)"
+ @echo "make preview -- preview rendered template"
+ @echo "make edit -- edit $(CONFIG)"
+ @echo "make clean -- removes generated files"