From 2ed5fe146363a7087860fd1ffdc05ef085cb5c08 Mon Sep 17 00:00:00 2001 From: Brian Hicks Date: Thu, 14 May 2020 12:45:37 -0500 Subject: [PATCH] add a script to resolve an elm import --- script/resolve-elm-import.sh | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100755 script/resolve-elm-import.sh diff --git a/script/resolve-elm-import.sh b/script/resolve-elm-import.sh new file mode 100755 index 0000000..0547827 --- /dev/null +++ b/script/resolve-elm-import.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env sh +set -euo pipefail + +ELM_JSON="${1:-}" +NAME="${2:-}" +if test -z "$NAME"; then + echo "usage: $0 elm.json Name.Of.Module" + exit 1 +fi + +RELATIVE_PATH="$(echo $NAME | sed 's|\.|/|g').elm" + +# look locally + +for DIR in $(jq -r '.["source-directories"] | join(" ")' "$ELM_JSON"); do + FINAL="$DIR/$RELATIVE_PATH" + if test -f $FINAL; then + echo "$FINAL" + exit 0 + fi +done + +# look in elm-stuff + +ELM_HOME="${ELM_HOME:-$HOME/.elm}" +ELM_VERSION="$(jq -r '.["elm-version"]' "$ELM_JSON")" + +for PROJECT_VERSION_SRC in $(jq -r '.dependencies.direct | to_entries | map("\(.key)/\(.value)") | join(" ")' "$ELM_JSON"); do + FINAL="$ELM_HOME/$ELM_VERSION/packages/$PROJECT_VERSION_SRC/src/$RELATIVE_PATH" + if test -f $FINAL; then + echo "$FINAL" + exit 0 + fi +done + +exit 1