1
0
mirror of synced 2025-12-21 11:01:41 -05:00
Files
airbyte/airbyte-integrations/bases/base/base.sh

65 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env bash
set -e
function echo2() {
echo >&2 "$@"
}
function error() {
echo2 "$@"
exit 1
}
# todo: make it easy to select source or destination and validate based on selection by adding an integration type env variable.
function main() {
CMD="$1"
shift 1 || error "command not specified."
ARGS=
while [ $# -ne 0 ]; do
case "$1" in
--config)
CONFIG_FILE="$2"
shift 2
;;
--catalog)
CATALOG_FILE="$2"
shift 2
;;
--state)
STATE_FILE="$2"
shift 2
;;
*)
error "Unknown option: $1"
;;
esac
done
case "$CMD" in
spec)
eval "$AIRBYTE_SPEC_CMD"
;;
check)
eval "$AIRBYTE_CHECK_CMD" --config "$CONFIG_FILE"
;;
discover)
eval "$AIRBYTE_DISCOVER_CMD" --config "$CONFIG_FILE"
;;
read)
READ_STATEMENT="$AIRBYTE_READ_CMD --config $CONFIG_FILE --catalog $CATALOG_FILE"
if [[ ! -z "$STATE_FILE" ]]; then READ_STATEMENT="$READ_STATEMENT --state $STATE_FILE"; fi
eval "$READ_STATEMENT"
;;
write)
eval "$AIRBYTE_WRITE_CMD" --config "$CONFIG_FILE" --catalog "$CATALOG_FILE"
;;
*)
error "Unknown command: $CMD"
;;
esac
}
main "$@"