master
sh 91 lines 1.67 KB
Raw
1 #!/usr/bin/env bash
2 # Package tree used for installing netdata on distribution:
3 # << ClearLinux: [base] >>
4
5 set -e
6
7 NON_INTERACTIVE=0
8 DONT_WAIT=0
9
10 declare -a package_tree=(
11 bison
12 c-basic
13 curl
14 devpkg-elfutils
15 devpkg-json-c
16 devpkg-libmnl
17 devpkg-libuv
18 devpkg-lz4
19 devpkg-openssl
20 devpkg-util-linux
21 devpkg-zlib
22 findutils
23 flex
24 git
25 gzip
26 make
27 python3-basic
28 service-os-dev
29 sysadmin-basic
30 yaml-dev
31 )
32
33 usage() {
34 cat << EOF
35 OPTIONS:
36 [--dont-wait] [--non-interactive] [ ]
37 EOF
38 }
39
40 check_flags() {
41 while [ -n "${1}" ]; do
42 case "${1}" in
43 dont-wait | --dont-wait | -n)
44 DONT_WAIT=1
45 ;;
46
47 non-interactive | --non-interactive | -y)
48 NON_INTERACTIVE=1
49 ;;
50
51 help | -h | --help)
52 usage
53 exit 1
54 ;;
55 *)
56 echo >&2 "ERROR: Cannot understand option '${1}'"
57 echo >&2
58 usage
59 exit 1
60 ;;
61 esac
62 shift
63 done
64
65 if [ "${DONT_WAIT}" -eq 0 ] && [ "${NON_INTERACTIVE}" -eq 0 ]; then
66 read -r -p "Press ENTER to run it > " || exit 1
67 fi
68 }
69
70 # shellcheck disable=SC2068
71 check_flags ${@}
72
73 packages_to_install=
74
75 # shellcheck disable=SC2068
76 for package in ${package_tree[@]}; do
77 if [[ "$(swupd bundle-info "$package" | grep Status | cut -d':' -f2)" == " Not installed" ]]; then
78 echo "Package '$package' is NOT installed"
79 packages_to_install="$packages_to_install $package"
80 else
81 echo "Package '$package' is installed"
82 fi
83 done
84
85 if [[ -z $packages_to_install ]]; then
86 echo "All required packages are already installed. Skipping .."
87 else
88 echo "packages_to_install: " "${packages_to_install[@]}"
89 # shellcheck disable=SC2068
90 swupd bundle-add ${packages_to_install[@]}
91 fi