listmonk/Makefile

70 lines
1.6 KiB
Makefile

BIN := listmonk
STATIC := config.toml.sample schema.sql queries.sql public email-templates frontend/my/build:/frontend
HASH := $(shell git rev-parse --short HEAD)
COMMIT_DATE := $(shell git show -s --format=%ci ${HASH})
BUILD_DATE := $(shell date '+%Y-%m-%d %H:%M:%S')
VERSION := ${HASH} (${COMMIT_DATE})
.PHONY: build_frontend
build_frontend:
cd frontend/my && yarn install && yarn build
.PHONY: quickdev
quickdev:
@ if [ ! -d "frontend/my/node_modules" ]; then \
echo "Installing frontend deps"; \
cd frontend/my && yarn install; \
fi
@ if [ ! -d "frontend/my/build" ]; then \
echo "Creating build directory"; \
mkdir -p frontend/my/build; \
echo "Building frontend assets"; \
cd frontend/my && yarn build; \
fi
@ echo -e "\nBuilding go binary\n"
make build
@ echo -e "Editing database params inside config\n"
cp config.toml.sample config.toml
@ echo -n "Database user: "
@ read DBUSER; \
sed -i -e "s/user = \"listmonk\"/user = \"$${DBUSER}\"/g" config.toml
@ echo -n "Database password: "
@ read DBPASSWORD; \
sed -i -e "s/password = \"\"/password = \"$${DBPASSWORD}\"/g" config.toml
@ echo -n "Database name: "
@ read DBNAME; \
sed -i -e "s/database = \"listmonk\"/database = \"$${DBNAME}\"/g" config.toml; \
createdb $${DBNAME}
@ echo -e "Running installer\n"
./listmonk --install
.PHONY: build
build:
go build -o ${BIN} -ldflags="-s -w -X 'main.buildVersion=${VERSION}' -X 'main.buildDate=${BUILD_DATE}'"
stuffbin -a stuff -in ${BIN} -out ${BIN} ${STATIC}
.PHONY: run
run: build
./${BIN}
.PHONY: deps
deps:
go get -u github.com/knadh/stuffbin/...
.PHONY: test
test:
go test
.PHONY: clean
clean:
go clean
- rm -f ${BIN}