blob: 698f2f92d8f87471790b2b50e39995298531358a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
#!/usr/bin/env bash
. $(dirname "${0}")/../functions.sh "${@}" || exit 1
run cd "${NETDATA_SOURCE_PATH}" || exit 1
# -----------------------------------------------------------------------------
# find the netdata version
NOWNER="unknown"
ORIGIN="$(git config --get remote.origin.url || echo "unknown")"
if [[ "${ORIGIN}" =~ ^git@github.com:.*/netdata.*$ ]]
then
NOWNER="${ORIGIN/git@github.com:/}"
NOWNER="${NOWNER/\/netdata*/}"
elif [[ "${ORIGIN}" =~ ^https://github.com/.*/netdata.*$ ]]
then
NOWNER="${ORIGIN/https:\/\/github.com\//}"
NOWNER="${NOWNER/\/netdata*/}"
fi
# make sure it does not have any slashes in it
NOWNER="${NOWNER//\//_}"
if [ "${NOWNER}" = "firehol" ]
then
NOWNER=
else
NOWNER="-${NOWNER}"
fi
VERSION="$(git describe || echo "undefined")"
[ -z "${VERSION}" ] && VERSION="undefined"
FILE_VERSION="${VERSION}-$(uname -m)-$(date +"%Y%m%d-%H%M%S")${NOWNER}"
# -----------------------------------------------------------------------------
# copy the files needed by makeself installation
run mkdir -p "${NETDATA_INSTALL_PATH}/system"
run cp \
makeself/post-installer.sh \
makeself/install-or-update.sh \
installer/functions.sh \
configs.signatures \
system/netdata-init-d \
system/netdata-lsb \
system/netdata-openrc \
system/netdata.logrotate \
system/netdata.service \
"${NETDATA_INSTALL_PATH}/system/"
# -----------------------------------------------------------------------------
# create a wrapper to start our netdata with a modified path
run mkdir -p "${NETDATA_INSTALL_PATH}/bin/srv"
run mv "${NETDATA_INSTALL_PATH}/bin/netdata" \
"${NETDATA_INSTALL_PATH}/bin/srv/netdata" || exit 1
cat >"${NETDATA_INSTALL_PATH}/bin/netdata" <<EOF
#!${NETDATA_INSTALL_PATH}/bin/bash
export PATH="${NETDATA_INSTALL_PATH}/bin:\${PATH}"
exec "${NETDATA_INSTALL_PATH}/bin/srv/netdata" "\${@}"
EOF
run chmod 755 "${NETDATA_INSTALL_PATH}/bin/netdata"
# -----------------------------------------------------------------------------
# move etc to protect the destination when unpacked
if [ ! -z "${NETDATA_INSTALL_PATH}" -a -d "${NETDATA_INSTALL_PATH}/etc" ]
then
if [ -d "${NETDATA_INSTALL_PATH}/etc.new" ]
then
run rm -rf "${NETDATA_INSTALL_PATH}/etc.new" || exit 1
fi
run mv "${NETDATA_INSTALL_PATH}/etc" \
"${NETDATA_INSTALL_PATH}/etc.new" || exit 1
if [ -f "${NETDATA_INSTALL_PATH}/etc.new/netdata/netdata.conf" ]
then
# delete the generated netdata.conf, so that the static installer will generate a new one
run rm "${NETDATA_INSTALL_PATH}/etc.new/netdata/netdata.conf"
fi
fi
# -----------------------------------------------------------------------------
# remove the links to allow untaring the archive
run rm "${NETDATA_INSTALL_PATH}/sbin" \
"${NETDATA_INSTALL_PATH}/usr/bin" \
"${NETDATA_INSTALL_PATH}/usr/sbin" \
"${NETDATA_INSTALL_PATH}/usr/local"
# -----------------------------------------------------------------------------
# create the makeself archive
run sed "s|NETDATA_VERSION|${FILE_VERSION}|g" <"${NETDATA_MAKESELF_PATH}/makeself.lsm" >"${NETDATA_MAKESELF_PATH}/makeself.lsm.tmp"
run "${NETDATA_MAKESELF_PATH}/makeself.sh" \
--gzip \
--complevel 9 \
--notemp \
--needroot \
--target "${NETDATA_INSTALL_PATH}" \
--header "${NETDATA_MAKESELF_PATH}/makeself-header.sh" \
--lsm "${NETDATA_MAKESELF_PATH}/makeself.lsm.tmp" \
--license "${NETDATA_MAKESELF_PATH}/makeself-license.txt" \
--help-header "${NETDATA_MAKESELF_PATH}/makeself-help-header.txt" \
"${NETDATA_INSTALL_PATH}" \
"${NETDATA_INSTALL_PATH}.gz.run" \
"netdata, the real-time performance and health monitoring system" \
./system/post-installer.sh \
${NULL}
run rm "${NETDATA_MAKESELF_PATH}/makeself.lsm.tmp"
# -----------------------------------------------------------------------------
# copy it to the netdata build dir
FILE="netdata-${FILE_VERSION}.gz.run"
run cp "${NETDATA_INSTALL_PATH}.gz.run" "${FILE}"
echo >&2 "Self-extracting installer copied to '${FILE}'"
[ -f netdata-latest.gz.run ] && rm netdata-latest.gz.run
run ln -s "${FILE}" netdata-latest.gz.run
echo >&2 "Self-extracting installer linked to 'netdata-latest.gz.run'"
|