master
sh 96 lines 1.83 KB
Raw
1 #!/usr/bin/env bash
2 # Package tree used for installing netdata on distribution:
3 # << Gentoo >> | << Pentoo >>
4
5 set -e
6
7 NON_INTERACTIVE=0
8 DONT_WAIT=0
9
10 package_tree="
11 app-alternatives/gzip
12 app-alternatives/tar
13 app-arch/lz4
14 dev-lang/python
15 dev-libs/json-c
16 dev-libs/libuv
17 dev-libs/libyaml
18 dev-libs/openssl
19 dev-util/cmake
20 dev-vcs/git
21 net-libs/libmnl
22 net-misc/curl
23 sys-apps/findutils
24 sys-apps/util-linux
25 sys-devel/bison
26 sys-devel/flex
27 sys-devel/gcc
28 sys-devel/make
29 virtual/libelf
30 virtual/pkgconfig
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 qlist -IRv "$package" &> /dev/null; then
78 echo "Package '${package}' is installed"
79 else
80 echo "Package '${package}' is NOT installed"
81 packages_to_install="$packages_to_install $package"
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 opts="--ask"
90 if [ "${NON_INTERACTIVE}" -eq 1 ]; then
91 echo >&2 "Running in non-interactive mode"
92 opts=""
93 fi
94 # shellcheck disable=SC2086
95 emerge ${opts} $packages_to_install
96 fi