1+ Name: crowdsec-custom-bouncer
2+ Version: %(echo $VERSION)
3+ Release: %(echo $PACKAGE_NUMBER)%{?dist }
4+ Summary: Custom bouncer for Crowdsec
5+
6+ License: MIT
7+ URL: https://crowdsec.net
8+ Source: cs-custom-bouncer-%(echo $VERSION).tar.gz
9+ BuildRoot: %{_tmppath }/%{name }-%{version }-%{release }-root-%(%{__id_u} -n)
10+
11+ BuildRequires: git
12+ BuildRequires: golang >= 1.14
13+ BuildRequires: make
14+ %{?fc33:BuildRequires: systemd-rpm-macros}
15+
16+ %define debug_package %{nil }
17+
18+ %description
19+
20+ %define version_number %(echo $VERSION)
21+ %define releasever %(echo $RELEASEVER)
22+ %global local_version v%{version_number }-%{releasever }-rpm
23+ %global name crowdsec-custom-bouncer
24+ %global __mangle_shebangs_exclude_from /usr/bin/env
25+
26+ %prep
27+ %setup -n cs-custom-bouncer-%{version }
28+
29+ %build
30+ BUILD_VERSION=%{local_version } make
31+ TMP=` mktemp -p /tmp/`
32+ cp config/%{name }.service ${TMP}
33+ BIN=%{_bindir }/%{name } CFG=/etc/crowdsec/ envsubst < ${TMP} > config/%{name }.service
34+ rm ${TMP}
35+
36+ %install
37+ rm -rf %{buildroot }
38+ mkdir -p %{buildroot }/usr/sbin
39+ install -m 755 -D %{name } %{buildroot }%{_bindir }/%{name }
40+ install -m 600 -D config/%{name }.yaml %{buildroot }/etc/crowdsec/%{name }/%{name }.yaml
41+ install -m 644 -D config/%{name }.service %{buildroot }%{_unitdir }/%{name }.service
42+
43+ %clean
44+ rm -rf %{buildroot }
45+
46+ %files
47+ %defattr(-,root,root,-)
48+ /usr/bin/%{name }
49+ %{_unitdir }/%{name }.service
50+ %config /etc/crowdsec/%{name }/%{name }.yaml
51+
52+
53+ %post
54+ systemctl daemon-reload
55+
56+
57+ START= 0
58+
59+ systemctl is-active --quiet crowdsec
60+
61+ if [ "$?" -eq "0" ] ; then
62+ START= 1
63+ echo "cscli/crowdsec is present, generating API key"
64+ unique= `date +%s `
65+ API_KEY= `sudo cscli -oraw bouncers add CustomBouncer-${unique}`
66+ if [ $? -eq 1 ] ; then
67+ echo "failed to create API token, service won't be started."
68+ START= 0
69+ API_KEY= "< API_KEY> "
70+ else
71+ echo "API Key : ${API_KEY}"
72+ fi
73+ fi
74+
75+ TMP= `mktemp -p /tmp/`
76+ cp /etc/crowdsec/crowdsec-custom-bouncer/crowdsec-custom-bouncer.yaml ${TMP}
77+ API_KEY= ${API_KEY} envsubst < ${TMP} > /etc/crowdsec/crowdsec-custom-bouncer/crowdsec-custom-bouncer.yaml
78+ rm ${TMP}
79+
80+ if [ ${START} -eq 0 ] ; then
81+ echo "no api key was generated, won't start service"
82+ fi
83+
84+ echo "please enter the binary path in '/etc/crowdsec/crowdsec-custom-bouncer/crowdsec-custom-bouncer.yaml' and start the bouncer via 'sudo systemctl start crowdsec-custom-bouncer' "
85+
86+
87+
88+ %changelog
89+ * Wed Jun 30 2021 Shivam Sandbhor <shivam@crowdsec.net>
90+ - First initial packaging
91+
92+ %preun
93+ systemctl stop crowdsec-custom-bouncer || echo "cannot stop service"
94+ systemctl disable crowdsec-custom-bouncer || echo "cannot disable service"
0 commit comments