12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- #!/bin/sh -e
- # Helper to bypass AC_ERLANG_CHECK_LIB
- #
- # Ejabberd releases do not download specific versions of its erlang
- # dependencies. Instead, it clones the master branch of a git
- # repository and asks erl to provide the library version. However,
- # the target erl program cannot be called from the host. So, this
- # script aims at finding the library version installed on the target,
- # without calling erlang.
- usage() {
- cat <<EOF
- Usage:
- $0 library
- Look for Erlang's library in TARGET_DIR/usr/lib/erlang/lib.
- If the library is found, it returns the path to the latest version,
- relative to TARGET_DIR. Otherwise, it returns "not found".
- If there are several versions, it returns an error because it does not
- know which one Erlang uses.
- EOF
- }
- die () {
- echo "$@" >&2
- exit 1
- }
- if [ $# -ne 1 ]; then
- usage
- exit 0
- else
- library="$1"
- fi
- target_dir="${TARGET_DIR:-output/target}"
- [ -d "$target_dir" ] || die "TARGET_DIR is not a directory. Please \
- specify the TARGET_DIR environment variable."
- case "$(ls -1d -- "$target_dir/usr/lib/erlang/lib/$library-"* | wc -l)" in
- 0)
- echo "not found"
- ;;
- 1)
- echo "$target_dir/usr/lib/erlang/lib/$library-"* \
- | sed -e "s,^$target_dir,,"
- ;;
- *)
- die "Several versions of $library have been found. Please \
- remove the unused ones."
- ;;
- esac
|