github.com/crowdsecurity/crowdsec@v1.6.1/cmd/crowdsec/Makefile (about)

     1  ifeq ($(OS), Windows_NT)
     2  	SHELL := pwsh.exe
     3  	.SHELLFLAGS := -NoProfile -Command
     4  	EXT = .exe
     5  endif
     6  
     7  GO = go
     8  GOBUILD = $(GO) build
     9  GOTEST = $(GO) test
    10  
    11  CROWDSEC_BIN = crowdsec$(EXT)
    12  # names longer than 15 chars break 'pgrep'
    13  PREFIX ?= "/"
    14  CFG_PREFIX = $(PREFIX)"/etc/crowdsec/config/"
    15  BIN_PREFIX = $(PREFIX)"/usr/local/bin/"
    16  DATA_PREFIX = $(PREFIX)"/var/run/crowdsec/"
    17  PID_DIR = $(PREFIX)"/var/run/"
    18  
    19  SYSTEMD_PATH_FILE = "/etc/systemd/system/crowdsec.service"
    20  
    21  .PHONY: all
    22  all: clean test build
    23  
    24  build: clean
    25  	$(GOBUILD) $(LD_OPTS) -o $(CROWDSEC_BIN)
    26  
    27  test:
    28  	$(GOTEST) $(LD_OPTS) -v ./...
    29  
    30  clean:
    31  	@$(RM) $(CROWDSEC_BIN) $(WIN_IGNORE_ERR)
    32  
    33  .PHONY: install
    34  install: install-conf install-bin
    35  
    36  .PHONY: install-conf
    37  install-conf:
    38  	mkdir -p $(DATA_PREFIX) || exit
    39  	(cd ../.. / && find ./data -type f -exec install -Dm 755 "{}" "$(DATA_PREFIX){}" \; && cd ./cmd/crowdsec) || exit
    40  	(cd ../../config && find ./patterns -type f -exec install -Dm 755 "{}" "$(CFG_PREFIX){}" \; && cd ../cmd/crowdsec) || exit
    41  	mkdir -p "$(CFG_PREFIX)" || exit
    42  	mkdir -p "$(CFG_PREFIX)/parsers" || exit
    43  	mkdir -p "$(CFG_PREFIX)/scenarios" || exit
    44  	mkdir -p "$(CFG_PREFIX)/postoverflows" || exit
    45  	mkdir -p "$(CFG_PREFIX)/collections" || exit
    46  	mkdir -p "$(CFG_PREFIX)/patterns" || exit
    47  	install -v -m 755 -D ../../config/prod.yaml "$(CFG_PREFIX)" || exit
    48  	install -v -m 755 -D ../../config/dev.yaml "$(CFG_PREFIX)" || exit
    49  	install -v -m 755 -D ../../config/acquis.yaml "$(CFG_PREFIX)" || exit
    50  	install -v -m 755 -D ../../config/profiles.yaml "$(CFG_PREFIX)" || exit
    51  	install -v -m 755 -D ../../config/api.yaml "$(CFG_PREFIX)" || exit
    52  	mkdir -p $(PID_DIR) || exit
    53  	PID=$(PID_DIR) DATA=$(DATA_PREFIX)"/data/" CFG=$(CFG_PREFIX) envsubst < ../../config/prod.yaml > $(CFG_PREFIX)"/default.yaml"	
    54  
    55  .PHONY: install-bin
    56  install-bin:
    57  	install -v -m 755 -D "$(CROWDSEC_BIN)" "$(BIN_PREFIX)/$(CROWDSEC_BIN)" || exit
    58  
    59  .PHONY: systemd
    60  systemd: install
    61  	CFG=$(CFG_PREFIX) PID=$(PID_DIR) BIN=$(BIN_PREFIX)"/"$(CROWDSEC_BIN) envsubst < ../../config/crowdsec.service > "$(SYSTEMD_PATH_FILE)"
    62  	systemctl daemon-reload
    63  
    64  .PHONY: uninstall
    65  uninstall:
    66  	$(RM) $(CFG_PREFIX) $(WIN_IGNORE_ERR)
    67  	$(RM) $(DATA_PREFIX) $(WIN_IGNORE_ERR) 
    68  	$(RM) "$(BIN_PREFIX)/$(CROWDSEC_BIN)" $(WIN_IGNORE_ERR)
    69  	$(RM) "$(SYSTEMD_PATH_FILE)" $(WIN_IGNORE_ERR)