|
| 1 | +#!/bin/bash |
| 2 | + |
| 3 | +tmp_dir=$(mktemp -d) |
| 4 | + |
| 5 | +echo "Copying sources..." |
| 6 | + |
| 7 | +cp -r $1/ydb/public/sdk/cpp/* $tmp_dir |
| 8 | +echo "tmp_dir: $tmp_dir" |
| 9 | + |
| 10 | +rm -r $tmp_dir/client |
| 11 | +rm -r $tmp_dir/src/client/cms |
| 12 | +rm -r $tmp_dir/src/client/config |
| 13 | +rm -r $tmp_dir/src/client/debug |
| 14 | +rm -r $tmp_dir/src/client/draft |
| 15 | + |
| 16 | +rm -r $tmp_dir/include/ydb-cpp-sdk/client/cms |
| 17 | +rm -r $tmp_dir/include/ydb-cpp-sdk/client/config |
| 18 | +rm -r $tmp_dir/include/ydb-cpp-sdk/client/debug |
| 19 | +rm -r $tmp_dir/include/ydb-cpp-sdk/client/draft |
| 20 | + |
| 21 | +rm -r $tmp_dir/tests/unit/client/draft |
| 22 | + |
| 23 | +mkdir -p $tmp_dir/src/api/client/yc_private |
| 24 | +mkdir -p $tmp_dir/src/api/client/yc_public |
| 25 | + |
| 26 | +cp -r $1/ydb/public/api/client/yc_private/iam $tmp_dir/src/api/client/yc_private |
| 27 | +cp -r $1/ydb/public/api/client/yc_private/operation $tmp_dir/src/api/client/yc_private |
| 28 | +cp -r $1/ydb/public/api/client/yc_public/common $tmp_dir/src/api/client/yc_public |
| 29 | +cp -r $1/ydb/public/api/client/yc_public/iam $tmp_dir/src/api/client/yc_public |
| 30 | +cp -r $1/ydb/public/api/grpc $tmp_dir/src/api |
| 31 | +cp -r $1/ydb/public/api/protos $tmp_dir/src/api |
| 32 | + |
| 33 | +rm -r $tmp_dir/src/api/protos/out |
| 34 | +rm $tmp_dir/include/ydb-cpp-sdk/type_switcher.h $tmp_dir/src/version.h |
| 35 | + |
| 36 | +cp -r $2/util $tmp_dir |
| 37 | +cp -r $2/library $tmp_dir |
| 38 | + |
| 39 | +cp -r $2/.devcontainer $tmp_dir |
| 40 | +cp -r $2/.git $tmp_dir |
| 41 | +cp -r $2/.github $tmp_dir |
| 42 | +cp -r $2/contrib $tmp_dir |
| 43 | +cp -r $2/cmake $tmp_dir |
| 44 | +cp -r $2/scripts $tmp_dir |
| 45 | +cp -r $2/third_party $tmp_dir |
| 46 | +cp -r $2/tools $tmp_dir |
| 47 | + |
| 48 | +cp $2/.gitignore $tmp_dir |
| 49 | +cp $2/.gitmodules $tmp_dir |
| 50 | +cp $2/CMakePresets.json $tmp_dir |
| 51 | +cp $2/CMakeLists.txt $tmp_dir |
| 52 | +cp $2/LICENSE $tmp_dir |
| 53 | +cp $2/README.md $tmp_dir |
| 54 | + |
| 55 | +cp $2/include/ydb-cpp-sdk/type_switcher.h $tmp_dir/include/ydb-cpp-sdk/type_switcher.h |
| 56 | +cp $2/src/version.h $tmp_dir/src/version.h |
| 57 | + |
| 58 | +cd $2 |
| 59 | + |
| 60 | +find src/ include/ tests/ examples/ -type f -name "CMakeLists.txt" | while read f; |
| 61 | +do |
| 62 | + mkdir -p "$(dirname "$tmp_dir/$f")" && cp -p $f $tmp_dir/$f |
| 63 | +done |
| 64 | + |
| 65 | +cd - |
| 66 | + |
| 67 | +echo "Copying completed" |
| 68 | +echo "Patching sources..." |
| 69 | + |
| 70 | +rm -rf $tmp_dir/adapters $tmp_dir/client |
| 71 | + |
| 72 | +SED_INCLUDE='(^\s*#include\s*)(<|\")' |
| 73 | + |
| 74 | +find $tmp_dir -type f -regex ".*\(h\|cpp\|cpp.in\|c\|ipp\|jnj\|rl6\|h.txt\|proto\)$" | while read f; |
| 75 | +do |
| 76 | + sed -i -E \ |
| 77 | + 's/'$SED_INCLUDE'ydb\/public\/api\//\1\2src\/api\//g; |
| 78 | + s/(^\s*import\s*)(\")ydb\/public\/api\//\1\2src\/api\//g; |
| 79 | + s/'$SED_INCLUDE'ydb\/public\/sdk\/cpp\/include\//\1\2/g; |
| 80 | + s/'$SED_INCLUDE'ydb\/public\/sdk\/cpp\//\1\2/g; |
| 81 | + s/'$SED_INCLUDE'library\/cpp\/retry\/retry_policy\.h/\1\2ydb-cpp-sdk\/library\/retry\/retry_policy\.h/g; |
| 82 | + s/'$SED_INCLUDE'library\/cpp\/string_utils\/base64\/base64\.h/\1\2src\/library\/string_utils\/base64\/base64\.h/g; |
| 83 | + s/(inline\s*)Dev/\1V3/g; |
| 84 | + s/(inline\s*namespace\s*)Dev/\1V3/g;' $f |
| 85 | +done |
| 86 | + |
| 87 | +echo "Patching completed" |
| 88 | +echo "RSync..." |
| 89 | + |
| 90 | +rsync -c -I -W -r --delete --filter '- **/ya.make' --filter '- sdk_common.inc' $tmp_dir/ $2 |
| 91 | +rm -rf $tmp_dir |
| 92 | + |
| 93 | +echo "RSync completed" |
0 commit comments