Skip to content

Instantly share code, notes, and snippets.

@qrilka
Created September 20, 2018 14:10
Show Gist options
  • Save qrilka/06df53695004c89a746a27de4812d1c0 to your computer and use it in GitHub Desktop.
Save qrilka/06df53695004c89a746a27de4812d1c0 to your computer and use it in GitHub Desktop.
diff --git a/wrappers/stack/ghc b/wrappers/stack/ghc
index 25b0c78..dfd21ab 100755
--- a/wrappers/stack/ghc
+++ b/wrappers/stack/ghc
@@ -1,5 +1,7 @@
#!/bin/bash
+set -e
+
# GHC wrapper for indexing Haskell packages.
# Note that variables INDEXER_OUTPUT_DIR and REALGHC are set outside this script.
@@ -9,6 +11,18 @@ log() {
log "========= FAKE GHC ======="
log " == pwd: $PWD"
+log " == pkg: ${PWD##*/}"
+EXE_FOUND=false
+for i in "$@"
+do
+ if [ "$EXE_FOUND" = true ]; then
+ EXE_SUFFIX="-$(basename $i)"
+ log " == exe-suffix: $EXE_SUFFIX"
+ break
+ elif [ "$i" = "-o" ]; then
+ EXE_FOUND=true
+ fi
+done
log "== Passing through.."
log "$REALGHC $*"
$REALGHC "$@"
@@ -18,11 +32,13 @@ RESULT=$?
if [[ "${@#--make}" != "$@" ]]; then
PKG=${PWD##*/}
log "== Invoking indexer"
+ ENTRIES_FILE="$INDEXER_OUTPUT_DIR/${PKG}${EXE_SUFFIX}.entries"
+ log "== Output entries file: $ENTRIES_FILE"
if ! ghc_kythe_wrapper \
--drop_path_prefix './' \
--prepend_path_prefix "$PKG/" \
-- \
- "$@" > "$INDEXER_OUTPUT_DIR/$PKG.entries" 2> "$INDEXER_OUTPUT_DIR/$PKG.stderr"; then
+ "$@" > "$ENTRIES_FILE" 2>> "$INDEXER_OUTPUT_DIR/$PKG.stderr"; then
echo "$PKG had error" >> "$INDEXER_OUTPUT_DIR/errors"
fi
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment