mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-11-10 18:50:52 +03:00
97 lines
1.8 KiB
Bash
97 lines
1.8 KiB
Bash
|
#!/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
|