* Add compare version tool * Delete empty line * Updated script to sync with state and add doc to README.md * Add STATE to filter and move pull during run
50 lines
1.3 KiB
Bash
50 lines
1.3 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
# Read input params
|
|
read -r -p 'Enter connector name: ' connector
|
|
read -r -p 'Enter first connector version: ' version_1
|
|
read -r -p 'Enter second connector version: ' version_2
|
|
|
|
use_state(){
|
|
failed=false
|
|
for i in $(seq 1 3)
|
|
do read -n 1 -r -s -p "Start sync with state (y/n)?" choice
|
|
case "$choice" in
|
|
y|Y ) failed=false ; return 1 ;;
|
|
n|N ) failed=false ; return 0 ;;
|
|
* ) printf "\n";;
|
|
esac
|
|
failed=true
|
|
done
|
|
|
|
if "$failed"; then
|
|
echo "Process finished with exit code 1"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
use_state
|
|
if [ "$?" -eq 1 ]; then
|
|
state_status="with"
|
|
state="/config_files/state.json"
|
|
else
|
|
state_status="without"
|
|
state=""
|
|
fi
|
|
|
|
printf "\nStarting comparing connector %s version %s with version %s %s state:\n" "$connector" "$version_1" "$version_2" "$state_status"
|
|
|
|
run_docker_image()
|
|
{
|
|
docker run --pull=missing --rm -v $(pwd)/config_files:/config_files airbyte/"$connector":"$1" read --config /config_files/secrets/config.json --catalog /config_files/configured_catalog.json --state "$state"
|
|
}
|
|
|
|
result=$( diff <(run_docker_image "$version_1") <(run_docker_image "$version_2") | grep -E 'RECORD|STATE' | sed '/\"emitted_at\"/,/}/ d')
|
|
|
|
if [ -n "$result" ]; then
|
|
printf "%s\n" "$result"
|
|
printf "Records output not equal."
|
|
else
|
|
printf "Records output equal."
|
|
fi
|