diff --git a/.hastest.bats b/.hastest.bats index dc51503..05adb9c 100644 --- a/.hastest.bats +++ b/.hastest.bats @@ -142,3 +142,23 @@ teardown() { [[ "printf '%b\n' ${lines[0]}" =~ "${checkmark}" ]] [[ "printf '%b\n' ${lines[2]}" =~ '✗' ]] } + +@test "testing archiving commands" { + run $has tar unzip gzip xz unar pv + + [ "$status" -eq 0 ] + [ "$(echo "${output}" | grep "tar")" ] + [ "$(echo "${output}" | grep "unzip")" ] + [ "$(echo "${output}" | grep "xz")" ] + [ "$(echo "${output}" | grep "unar")" ] + [ "$(echo "${output}" | grep "pv")" ] +} + +@test "testing coreutils commands" { + run $has coreutils sed awk grep sudo file linux-utils + + [ "$status" -eq 0 ] + [ "$(echo "${lines[0]}" | grep "gnu_coreutils")" ] + [ "$(echo "${lines[5]}" | grep "file")" ] + [ "$(echo "${lines[6]}" | grep "gnu_coreutils")" ] +} diff --git a/.travis.yml b/.travis.yml index b592514..381aa2a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,6 +5,9 @@ addons: update: true packages: - bc + - pv + - xz-utils + - unar env: global: diff --git a/has b/has index 328bba2..0564077 100755 --- a/has +++ b/has @@ -81,6 +81,7 @@ __detect(){ homebrew) command="brew";; awsebcli) command="eb";; awscli) command="aws";; + *coreutils|linux-utils) command="gnu_coreutils" ;; *) command=${name} ;; esac @@ -94,6 +95,10 @@ __detect(){ vim|emacs|nano|subl) __dynamic_detect--version "${command}" ;; bats|tree|ack|autojump) __dynamic_detect--version "${command}" ;; jq|ag|brew) __dynamic_detect--version "${command}" ;; + apt|apt-get|aptitude) __dynamic_detect--version "${command}" ;; + sed|awk|grep|file|sudo) __dynamic_detect--version "${command}" ;; + gzip|xz|unar|bzip2) __dynamic_detect--version "${command}" ;; + tar|pv) __dynamic_detect--version "${command}" ;; R) __dynamic_detect--version "${command}" ;; node|npm|yarn) __dynamic_detect--version "${command}" ;; @@ -105,6 +110,9 @@ __detect(){ lein) __dynamic_detect--version "${command}" ;; aws|eb|sls|gcloud) __dynamic_detect--version "${command}" ;; + # commands that need -v flag + unzip) __dynamic_detect-v "${command}" ;; + # commands that need -version flag ant|java|javac) __dynamic_detect-version "${command}" ;; scala|kotlin) __dynamic_detect-version "${command}" ;; @@ -142,6 +150,10 @@ __detect(){ status=$? ;; + ## use 'readlink' to test for GNU coreutils + # readlink (GNU coreutils) 8.28 + gnu_coreutils) __dynamic_detect--version readlink ;; + has) version=$(has 2>&1 | grep -Eo "${REGEX_SIMPLE_VERSION}" | head -1) status=$?