summaryrefslogtreecommitdiffstats
path: root/scripts/functions.sh
blob: e416ee274f34c6077b979a14d253b4b4a29c6dbf (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
# Copyright (c) 2021 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

#!/bin/bash
set -euxo pipefail

APT_PATH=$(which apt-get) || true
apt_get=${APT_PATH:-"/usr/local/bin/apt-get"}

# Cmake executable
CMAKE_INSTALL_DIR="/opt/cmake"
export PATH=:${CMAKE_INSTALL_DIR}/bin:${PATH}

# Figure out what system we are running on
if [ -f /etc/os-release ]; then
  . /etc/os-release
else
  echo "ERROR: System configuration not recognized. Build failed"
  exit 1
fi

COLLECTD_SOURCE="https://github.com/collectd/collectd/releases/download/collectd-5.12.0/collectd-5.12.0.tar.bz2"

function install_collectd_headers() {
  curl -OL ${COLLECTD_SOURCE}
  tar -xf collectd-5.12.0.tar.bz2

  pushd collectd-5.12.0
  ./configure && make -j$(nproc)
  popd

  export COLLECTD_HOME=${PWD}/collectd-5.12.0/src
}

# Call a function once
function call_once() {
  # OP_NAME is the name of the function
  OP_NAME=${1}
  # If function was already called return
  [[ -f /tmp/${OP_NAME} ]] && return 0
  # Otherwise call the function
  ${@}
  # And mark the function as called if no error occurred
  echo ${OP_NAME} >/tmp/${OP_NAME}
}

# Install dependencies
function install_deps() {
  make -C ${SCRIPT_PATH}/.. deps
}

function setup() {
  echo DISTRIBUTION: ${PRETTY_NAME}
  # export variables depending on the platform we are running
  call_once install_deps
  call_once install_collectd_headers
}

function setup_extras() {
  echo DISTRIBUTION: ${PRETTY_NAME}
  # export variables depending on the platform we are running

  call_once install_deps
  call_once install_collectd_headers
}