65 lines
1.2 KiB
Bash
Executable File
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 "$@"
|