mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-12-12 14:05:16 +03:00
d7b6585454
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3996 GitOrigin-RevId: ace7f4c13cab6e549aedf4520334c435acac9ab1
97 lines
1.8 KiB
Bash
Executable File
97 lines
1.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# A utility script to setup local Hoogle instance.
|
|
|
|
set -euo pipefail
|
|
|
|
HOOGLE=hoogle
|
|
CABAL=cabal
|
|
CABAL_ARGS="--haddock-hoogle"
|
|
CABAL_DIST=dist-newstyle
|
|
HOOGLE_DATABASE=$CABAL_DIST/hge.hoo
|
|
HOOGLE_PORT=1337
|
|
PROJECT_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )/.." >/dev/null 2>&1 && pwd )"
|
|
|
|
MODE=$1
|
|
|
|
print_usage() {
|
|
cat << EOL
|
|
A utility script for setting up local Hoogle instance
|
|
|
|
Usage: $0 <COMMAND>
|
|
|
|
Available Commands:
|
|
|
|
generate
|
|
Generate local hoogle database and store it at $HOOGLE_DATABASE
|
|
|
|
serve [--port INT]
|
|
Start local hoogle server. If --port is not provided then the server will run on port $HOOGLE_PORT.
|
|
|
|
Global flags:
|
|
-h, --help Show this help text
|
|
|
|
EOL
|
|
}
|
|
|
|
die_usage() {
|
|
print_usage
|
|
exit 1
|
|
}
|
|
|
|
show_help() {
|
|
print_usage
|
|
exit 0
|
|
}
|
|
|
|
case "${1-}" in
|
|
-h)
|
|
show_help
|
|
;;
|
|
--help)
|
|
show_help
|
|
;;
|
|
generate)
|
|
;;
|
|
serve)
|
|
case "${2-}" in
|
|
--port)
|
|
HOOGLE_PORT="${*:3}"
|
|
;;
|
|
esac
|
|
;;
|
|
*)
|
|
die_usage
|
|
;;
|
|
esac
|
|
|
|
check_hoogle() {
|
|
if ! command -v "$HOOGLE" &> /dev/null ; then
|
|
echo "ERROR: $HOOGLE not found, Please install."
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
if [ "$MODE" = "generate" ]; then
|
|
check_hoogle
|
|
cd "$PROJECT_ROOT"
|
|
echo "Generating haddock hoogle files"
|
|
$CABAL haddock $CABAL_ARGS all
|
|
echo "Generating hoogle database"
|
|
$HOOGLE generate --local=$CABAL_DIST --database=$HOOGLE_DATABASE
|
|
|
|
elif [ "$MODE" = "serve" ]; then
|
|
check_hoogle
|
|
cd "$PROJECT_ROOT"
|
|
if ! [ -f "$HOOGLE_DATABASE" ]; then
|
|
echo "Hoogle database $HOOGLE_DATABASE does not exist. Run '$0 generate' to generate database."
|
|
exit 1
|
|
fi
|
|
echo "Starting local hoogle server. Visit http://localhost:$HOOGLE_PORT"
|
|
$HOOGLE server --local --database=$HOOGLE_DATABASE --port $HOOGLE_PORT
|
|
|
|
else
|
|
echo "Invalid command; $MODE"
|
|
|
|
fi
|