# # Makefile for packaging COTS component of vitamui solution # # Args parsing NAME := nginx VERSION := vitamui_version. DEPENDENCIES := nginx,systemd # Staging root configuration DESTDIR := $(abspath ./package-stage/) STAGING_ROOT := $(abspath $(DESTDIR)/) FPM := /usr/local/bin/fpm USER := vitamui GROUP := $(USER) PACKAGING_MAKEFILE := ../../tools/packaging/Makefile # Package metas COPYRIGHT = VitamUI Copyright 2018 VITAM_UI COMMIT_ID = $(shell git rev-parse --short HEAD) BRANCHE = $(shell git rev-parse --abbrev-ref HEAD) DESCRIPTION = $(NAME) package for vitamui solution. NGINX version is the latest available in guest system. Branch: $(BRANCHE), commit: $(COMMIT_ID) # Install params SYSTEMD_DIR := /usr/lib/systemd/system/ VITAMUI_DIRS = app bin lib script conf log data tmp run defaults PACKAGING_DIR := $(dir $(lastword $(MAKEFILE_LIST))) TEMPLATE_TMP_DIR := $(abspath ./package-templates/) TEMPLATE_SRC = $(wildcard $(PACKAGING_DIR)/templates/*) RPM_OUTPUT_PATH := vitamui-$(NAME)-$(VERSION).rpm # fpm packaging default args FPM_PACK_ARGS = -f -d "$(DEPENDENCIES)" --description "$(DESCRIPTION)" FPM_PACK_META = --license "$(COPYRIGHT)" -n "vitamui-$(NAME)" -v $(VERSION) FPM_PACK_INSTALL_SCRIPTS = --before-install "$(TEMPLATE_TMP_DIR)/before-install.sh" --after-install "$(TEMPLATE_TMP_DIR)/after-install.sh" FPM_PACK_REMOVE_SCRIPTS = --before-remove "$(TEMPLATE_TMP_DIR)/before-remove.sh" --after-remove "$(TEMPLATE_TMP_DIR)/after-remove.sh" # # Imports from packaging Makefiles # clean: $(MAKE) -f $(PACKAGING_MAKEFILE) NAME=$(NAME) VERSION=$(VERSION) RPM_OUTPUT_PATH=$(RPM_OUTPUT_PATH) $@ stage: $(MAKE) -f $(PACKAGING_MAKEFILE) NAME=$(NAME) VERSION=$(VERSION) STAGING_ROOT=$(STAGING_ROOT) $@ vitamui-dirs: $(MAKE) -f $(PACKAGING_MAKEFILE) NAME=$(NAME) VERSION=$(VERSION) $@ reset: clean @rm -Rf src/ # # COTS src fetching: # # # COTS stage install # template-files: # Applying packaging/Makefile first: @$(MAKE) -f $(PACKAGING_MAKEFILE) NAME=$(NAME) VERSION=$(VERSION) $@ # Override it with current directory template dir @mkdir -p $(TEMPLATE_TMP_DIR) @for fic in $(TEMPLATE_SRC) ; \ do \ sed \ -e "s/__NAME__/$(NAME)/g" \ -e "s/__JAR_FILE__/$(JAR_FILE)/g" \ -e "s/__VERSION__/$(VERSION)/g" \ -e "s/__USER__/$(USER)/g" \ -e "s/__GROUP__/$(GROUP)/g" \ -e "s/__ARGS__/$(ARGS)/g" \ $$fic > $(TEMPLATE_TMP_DIR)/`basename $$fic`; \ done install: stage vitamui-dirs template-files @mkdir -p -m 750 $(abspath $(STAGING_ROOT)/vitamui/conf/$(NAME)/conf.d) # Provide default conf @install -m 644 $(TEMPLATE_TMP_DIR)/$(NAME).conf.default $(abspath $(STAGING_ROOT)/vitamui/defaults/$(NAME)/$(NAME).conf) @mkdir -p -m 750 $(abspath $(STAGING_ROOT)/etc/logrotate.d) @install -m 644 $(TEMPLATE_TMP_DIR)/logrotated.vitamui-nginx $(abspath $(STAGING_ROOT)/etc/logrotate.d/vitamui-nginx) @mkdir -p -m 750 $(abspath $(STAGING_ROOT)/etc/logrotate.d) @install -m 644 $(TEMPLATE_TMP_DIR)/logrotated.vitamui-nginx $(abspath $(STAGING_ROOT)/etc/logrotate.d/vitamui-nginx) @mkdir -p -m 750 $(abspath $(STAGING_ROOT)/$(SYSTEMD_DIR)/) @install -m 644 $(TEMPLATE_TMP_DIR)/vitamui-nginx.service $(abspath $(STAGING_ROOT)/$(SYSTEMD_DIR)/vitamui-nginx.service) rpm: install @$(FPM) -s dir $(FPM_PACK_ARGS) $(FPM_PACK_META) $(FPM_PACK_INSTALL_SCRIPTS) $(FPM_PACK_REMOVE_SCRIPTS) -t rpm -p $(RPM_OUTPUT_PATH) "$(STAGING_ROOT)/=/" # # COTS Packaging #ec .PHONY: clean stage vitamui-dirs source template-files build install reset