gentoo.sh 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. #!/usr/bin/env bash
  2. # Package tree used for installing netdata on distribution:
  3. # << Gentoo >> | << Pentoo >>
  4. set -e
  5. NON_INTERACTIVE=0
  6. DONT_WAIT=0
  7. package_tree="
  8. app-alternatives/gzip
  9. app-alternatives/tar
  10. app-arch/lz4
  11. dev-lang/python
  12. dev-libs/json-c
  13. dev-libs/libuv
  14. dev-libs/libyaml
  15. dev-libs/openssl
  16. dev-util/cmake
  17. dev-vcs/git
  18. net-libs/libmnl
  19. net-misc/curl
  20. sys-apps/findutils
  21. sys-apps/util-linux
  22. sys-devel/bison
  23. sys-devel/flex
  24. sys-devel/gcc
  25. sys-devel/make
  26. virtual/libelf
  27. virtual/pkgconfig
  28. "
  29. usage() {
  30. cat << EOF
  31. OPTIONS:
  32. [--dont-wait] [--non-interactive] [ ]
  33. EOF
  34. }
  35. check_flags() {
  36. while [ -n "${1}" ]; do
  37. case "${1}" in
  38. dont-wait | --dont-wait | -n)
  39. DONT_WAIT=1
  40. ;;
  41. non-interactive | --non-interactive | -y)
  42. NON_INTERACTIVE=1
  43. ;;
  44. help | -h | --help)
  45. usage
  46. exit 1
  47. ;;
  48. *)
  49. echo >&2 "ERROR: Cannot understand option '${1}'"
  50. echo >&2
  51. usage
  52. exit 1
  53. ;;
  54. esac
  55. shift
  56. done
  57. if [ "${DONT_WAIT}" -eq 0 ] && [ "${NON_INTERACTIVE}" -eq 0 ]; then
  58. read -r -p "Press ENTER to run it > " || exit 1
  59. fi
  60. }
  61. # shellcheck disable=SC2068
  62. check_flags ${@}
  63. packages_to_install=
  64. # shellcheck disable=SC2068
  65. for package in $package_tree; do
  66. if qlist -IRv "$package" &> /dev/null; then
  67. echo "Package '${package}' is installed"
  68. else
  69. echo "Package '${package}' is NOT installed"
  70. packages_to_install="$packages_to_install $package"
  71. fi
  72. done
  73. if [[ -z "$packages_to_install" ]]; then
  74. echo "All required packages are already installed. Skipping .."
  75. else
  76. echo "packages_to_install:" "$packages_to_install"
  77. opts="--ask"
  78. if [ "${NON_INTERACTIVE}" -eq 1 ]; then
  79. echo >&2 "Running in non-interactive mode"
  80. opts=""
  81. fi
  82. # shellcheck disable=SC2086
  83. emerge ${opts} $packages_to_install
  84. fi