diff options
author | merakor <cem@ckyln.com> | 2021-01-06 11:56:09 +0000 |
---|---|---|
committer | merakor <cem@ckyln.com> | 2021-01-06 11:56:09 +0000 |
commit | ae42d4a74240d452864cdf16ce2ac2cbbdb5fc68 (patch) | |
tree | 555426dbde9aec2f5c22154bd21b416f14151d05 /spec | |
parent | 12a4321bfdc98c3bf7b1440077c1a09c9f4e3eec (diff) | |
download | cpt-ae42d4a74240d452864cdf16ce2ac2cbbdb5fc68.tar.gz |
shellspec: add spec_helper
FossilOrigin-Name: df5c93b3f164a3826c97d1ca43924d44af1a5e156e2c4b2f0b8496c60b652868
Diffstat (limited to 'spec')
-rw-r--r-- | spec/02_src_spec.sh | 9 | ||||
-rw-r--r-- | spec/spec_helper.sh | 20 |
2 files changed, 23 insertions, 6 deletions
diff --git a/spec/02_src_spec.sh b/spec/02_src_spec.sh index 57c248f..b4a5c48 100644 --- a/spec/02_src_spec.sh +++ b/spec/02_src_spec.sh @@ -67,17 +67,14 @@ Describe 'Main toolchain' Describe 'cpt-list' no_db_dir() { - # Return 0 if database directory is empty (or doesn't exist) - # shellcheck disable=2012 - count=$(ls -1 "$CPT_ROOT/var/db/cpt/installed" 2>/dev/null | wc -l) - [ "$count" -eq 0 ] + [ "$(pkgnum)" -eq 0 ] } Skip if "there are no installed packages" no_db_dir It 'lists all packages when called without arguments' When run script src/cpt-list - The lines of output should eq "$(ls -1 "$CPT_ROOT/var/db/cpt/installed" 2>/dev/null | wc -l)" + The lines of output should eq "$(pkgnum)" End - for firstpkg in "$CPT_ROOT/var/db/cpt/installed/"*; do firstpkg=${firstpkg##*/}; break; done + firstpkg=$(getfirstpkg) It 'only lists the packages given in the arguments' When run script src/cpt-list "$firstpkg" The word 1 of stdout should eq "$firstpkg" diff --git a/spec/spec_helper.sh b/spec/spec_helper.sh new file mode 100644 index 0000000..f62d9f6 --- /dev/null +++ b/spec/spec_helper.sh @@ -0,0 +1,20 @@ +# shellcheck shell=sh + +pkgnum() { + i=0 + cd "$CPT_ROOT/var/db/cpt/installed" || { printf '%s\n' 0; return 1 ;} + for pkg in ./*; do + [ -d "$pkg" ] || break + i=$(( i + 1 )) + done + printf '%s\n' "$i" +} + +getfirstpkg() { + cd "$CPT_ROOT/var/db/cpt/installed" || return 1 + for pkg in ./*; do + [ -d "$pkg" ] || return 1 + printf '%s\n' "${pkg##*/}" + break + done +} |