patch-crates.sh 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. # source this file
  2. update_solana_dependencies() {
  3. declare project_root="$1"
  4. declare solana_ver="$2"
  5. declare tomls=()
  6. while IFS='' read -r line; do tomls+=("$line"); done < <(find "$project_root" -name Cargo.toml)
  7. sed -i -e "s#\(solana-program = \"\)[^\"]*\(\"\)#\1=$solana_ver\2#g" "${tomls[@]}" || return $?
  8. sed -i -e "s#\(solana-program = { version = \"\)[^\"]*\(\"\)#\1=$solana_ver\2#g" "${tomls[@]}" || return $?
  9. sed -i -e "s#\(solana-program-test = \"\)[^\"]*\(\"\)#\1=$solana_ver\2#g" "${tomls[@]}" || return $?
  10. sed -i -e "s#\(solana-program-test = { version = \"\)[^\"]*\(\"\)#\1=$solana_ver\2#g" "${tomls[@]}" || return $?
  11. sed -i -e "s#\(solana-sdk = \"\).*\(\"\)#\1=$solana_ver\2#g" "${tomls[@]}" || return $?
  12. sed -i -e "s#\(solana-sdk = { version = \"\)[^\"]*\(\"\)#\1=$solana_ver\2#g" "${tomls[@]}" || return $?
  13. sed -i -e "s#\(solana-client = \"\)[^\"]*\(\"\)#\1=$solana_ver\2#g" "${tomls[@]}" || return $?
  14. sed -i -e "s#\(solana-client = { version = \"\)[^\"]*\(\"\)#\1=$solana_ver\2#g" "${tomls[@]}" || return $?
  15. sed -i -e "s#\(solana-cli-config = \"\)[^\"]*\(\"\)#\1=$solana_ver\2#g" "${tomls[@]}" || return $?
  16. sed -i -e "s#\(solana-cli-config = { version = \"\)[^\"]*\(\"\)#\1=$solana_ver\2#g" "${tomls[@]}" || return $?
  17. sed -i -e "s#\(solana-clap-utils = \"\)[^\"]*\(\"\)#\1=$solana_ver\2#g" "${tomls[@]}" || return $?
  18. sed -i -e "s#\(solana-clap-utils = { version = \"\)[^\"]*\(\"\)#\1=$solana_ver\2#g" "${tomls[@]}" || return $?
  19. sed -i -e "s#\(solana-account-decoder = \"\)[^\"]*\(\"\)#\1=$solana_ver\2#g" "${tomls[@]}" || return $?
  20. sed -i -e "s#\(solana-account-decoder = { version = \"\)[^\"]*\(\"\)#\1=$solana_ver\2#g" "${tomls[@]}" || return $?
  21. sed -i -e "s#\(solana-faucet = \"\)[^\"]*\(\"\)#\1=$solana_ver\2#g" "${tomls[@]}" || return $?
  22. sed -i -e "s#\(solana-faucet = { version = \"\)[^\"]*\(\"\)#\1=$solana_ver\2#g" "${tomls[@]}" || return $?
  23. sed -i -e "s#\(solana-zk-token-sdk = \"\)[^\"]*\(\"\)#\1=$solana_ver\2#g" "${tomls[@]}" || return $?
  24. sed -i -e "s#\(solana-zk-token-sdk = { version = \"\)[^\"]*\(\"\)#\1=$solana_ver\2#g" "${tomls[@]}" || return $?
  25. }
  26. patch_crates_io_solana() {
  27. declare Cargo_toml="$1"
  28. declare solana_dir="$2"
  29. cat >> "$Cargo_toml" <<EOF
  30. [patch.crates-io]
  31. EOF
  32. patch_crates_io_solana_no_header "$Cargo_toml" "$solana_dir"
  33. }
  34. patch_crates_io_solana_no_header() {
  35. declare Cargo_toml="$1"
  36. declare solana_dir="$2"
  37. cat >> "$Cargo_toml" <<EOF
  38. solana-account-decoder = { path = "$solana_dir/account-decoder" }
  39. solana-clap-utils = { path = "$solana_dir/clap-utils" }
  40. solana-client = { path = "$solana_dir/client" }
  41. solana-cli-config = { path = "$solana_dir/cli-config" }
  42. solana-program = { path = "$solana_dir/sdk/program" }
  43. solana-program-test = { path = "$solana_dir/program-test" }
  44. solana-sdk = { path = "$solana_dir/sdk" }
  45. solana-faucet = { path = "$solana_dir/faucet" }
  46. solana-zk-token-sdk = { path = "$solana_dir/zk-token-sdk" }
  47. EOF
  48. }