logo

utils-std

Collection of commonly available Unix tools git clone https://anongit.hacktivis.me/git/utils-std.git/

pwd.sh (966B)


  1. #!/bin/sh
  2. # SPDX-FileCopyrightText: 2017 Haelwenn (lanodan) Monnier <contact+utils@hacktivis.me>
  3. # SPDX-License-Identifier: MPL-2.0
  4. WD="$(dirname "$0")"
  5. target="$(realpath "$WD/../cmd/pwd")"
  6. plans=6
  7. . "$(dirname "$0")/tap.sh"
  8. t noargs '' "${PWD?}
  9. "
  10. opterr=""
  11. # https://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=59443
  12. [ $(uname -s) = "NetBSD" ] && opterr="pwd: unknown option -- H
  13. "
  14. t --exit=1 usage '-H' "${opterr}pwd: error: Unrecognised option: '-H'
  15. Usage: pwd [-L|-P]
  16. "
  17. oldpwd=$PWD
  18. PWD=/$PWD t 'PWD=/$PWD' '' "/${oldpwd}
  19. "
  20. PWD=//foo t 'PWD=//foo' '' "${oldpwd}
  21. "
  22. PWD=foo t PWD=foo '' "${oldpwd}
  23. "
  24. PWD=$oldpwd
  25. if command -v mktemp >/dev/null 2>/dev/null
  26. then
  27. tmpdir="$(mktemp -d)" || exit 1
  28. test -d "$tmpdir" || exit 1
  29. oldpwd="$PWD"
  30. cd "$tmpdir" || exit 1
  31. (
  32. cd "$oldpwd" || exit 1
  33. rm -r "$tmpdir" || exit 1
  34. )
  35. t --exit=1 enoent '' 'pwd: error: getcwd: No such file or directory
  36. '
  37. cd "$oldpwd"
  38. else
  39. skip enoent 'requires mktemp(1)'
  40. fi