github.com/crowdsecurity/crowdsec@v1.6.1/test/bats-detect/lib/setup_file_detect.sh (about)

     1  #!/usr/bin/env bash
     2  
     3  TESTDATA="${BATS_TEST_DIRNAME}/testdata"
     4  export TESTDATA
     5  
     6  CACHEDIR="${TESTDATA}/.cache"
     7  export CACHEDIR
     8  
     9  mkdir -p "${CACHEDIR}"
    10  
    11  DEBIAN_FRONTEND=noninteractive
    12  export DEBIAN_FRONTEND
    13  
    14  # avoid warnings in stderr, especially from perl modules
    15  LC_ALL=C
    16  export LC_ALL
    17  
    18  deb-install() {
    19      # use aptitude to reliably purge dependencies too
    20      sudo aptitude install "$@" -yq >/dev/null
    21      # this does not work well enough
    22      # sudo apt-get -qq -y -o Dpkg:Use-Pty=0 install "$@" >/dev/null
    23      # sudo apt-mark auto "$@"
    24  }
    25  export -f deb-install
    26  
    27  deb-update() {
    28      sudo apt-get -qq -y -o Dpkg:Use-Pty=0 update
    29  }
    30  export -f deb-update
    31  
    32  deb-remove() {
    33      for pkg in "$@"; do
    34          if dpkg -s "${pkg}" >/dev/null 2>&1; then
    35              # use aptitude to reliably purge dependencies too
    36              sudo aptitude purge "${pkg}" -yq >/dev/null
    37              # this does not work well enough
    38              # sudo apt-get -qq -y purge --auto-remove "${pkg}" >/dev/null
    39          fi
    40      done
    41  }
    42  export -f deb-remove
    43  
    44  rpm-install() {
    45      sudo dnf -q -y install "$@"
    46  }
    47  export -f rpm-install
    48  
    49  rpm-remove() {
    50      # don't fail if dnf does not exist (teardown is called on deb distros too)
    51      if command -v dnf >/dev/null; then
    52          sudo dnf -q -y remove "$@" >/dev/null
    53      fi
    54  }
    55  export -f rpm-remove
    56  
    57  export CROWDSEC_FEATURE_CSCLI_SETUP="true"