difftreelog
fix @polkadot/api dependency location
in: master
1 file changed
js-packages/scripts/generate_types/generate_types_package.shdiffbeforeafterboth1#!/usr/bin/env bash23# 2001 - cat file | cmd is fancier than cmd < file in most cases4# 2002 - bash replacement patterns are awful5# shellcheck disable=SC2001,SC20026set -eux78DIR=realpath"dirname"$0""9TEMPLATE=$DIR/types_template10GIT_REPO=git@github.com:UniqueNetwork/unique-types-js.git1112. "$DIR/functions.sh"1314usage() {15 echo "Usage: [RPC_URL=http://localhost:9944] $0 <--rc|--release> [--force] [--push] [--rpc-url=http://localhost:9944]" 1>&216 exit 117}1819rc=20release=21force=22push=2324for i in "$@"; do25case $i in26 --rc)27 rc=128 if test "$release"; then usage; fi29 ;;30 --release)31 release=132 if test "$rc"; then usage; fi33 ;;34 --force)35 force=136 ;;37 --push)38 push=139 ;;40 --rpc-url=*)41 RPC_URL=i42 ;;43 *)44 usage45 ;;46esac47done4849if test \( ! \( "$rc" -o "$release" \) \) -o \( "RPC_URL" = "" \); then50 usage51elif test "$rc"; then52 echo "Rc build"53else54 echo "Release build"55fi5657cd "$DIR/../../"58yarn polkadot-types5960version=do_rpc""61spec_version=echo"$version"|jq-r62spec_name=echo"$version"|jq-r63echo "Spec version: $spec_version, name: $spec_name"6465case $spec_name in66 opal)67 package_name=@unique-nft/opal-testnet-types68 repo_branch=opal-testnet69 repo_tag=$repo_branch70 ;;71 sapphire)72 package_name=@unique-nft/sapphire-mainnet-types73 repo_branch=sapphire-mainnet74 repo_tag=$repo_branch75 ;;76 quartz)77 package_name=@unique-nft/quartz-mainnet-types78 repo_branch=quartz-mainnet79 repo_tag=$repo_branch80 ;;81 unique)82 package_name=@unique-nft/unique-mainnet-types83 repo_branch=master84 repo_tag=unique-mainnet85 ;;86 *)87 echo "unknown spec name: $spec_name"88 exit 189 ;;90esac9192if test "$rc" = 1; then93 if test "$spec_name" != "opal"; then94 echo "rc types can only be based on opal spec"95 exit 196 fi97 package_name=@unique-nft/rc-types98 repo_branch=rc99 repo_tag=$repo_branch100fi101102package_version=spec_version.echo"spec_version"|sed's/^0*//'.103last_patch=NEVER104for tag in git-t--refs$GIT_REPO|cut-f|sort-r; do105 tag_prefix=refs/tags/$repo_tag-v$package_version106 if [[ $tag == $tag_prefix* ]]; then107 last_patch=tag"$tag_prefix"108 break;109 fi110done111echo "Package version: package_versionX, name: $package_name"112echo "Last published: $package_version$last_patch"113114if test "$last_patch" = "NEVER"; then115 new_package_version=package_version0116else117 new_package_version=package_version$((last_patch+1))118fi119package_version=package_version$last_patch120echo "New package version: $new_package_version"121122pjsapi_ver=^cat"$DIR/../../package.json"|jq-r'.dependencies."@polkadot/api"'|sed-e"s/^\^//"123tsnode_ver=^cat"$DIR/../../package.json"|jq-r'.devDependencies."ts-node"'|sed-e"s/^\^//"124ts_ver=^cat"$DIR/../../package.json"|jq-r'.devDependencies."typescript"'|sed-e"s/^\^//"125126gen=mktemp-d127pushd "$gen"128git clone $GIT_REPO -b $repo_branch --depth 1 .129if test "$last_patch" != "NEVER"; then130 git reset --hard "$repo_tag-v$package_version"131fi132git rm -r "*"133popd134135# Using old package_version here, becaue we first check if136# there is any difference between generated and already uplaoded types137cat "$TEMPLATE/package.json" \138| jq '.private = false' - \139| jq ".name = \"$package_name\"" - \140| jq ".version = \"$package_version\"" - \141| jq ".peerDependencies.\"@polkadot/api\" = \"$pjsapi_ver\"" - \142| jq ".peerDependencies.\"@polkadot/types\" = \"$pjsapi_ver\"" - \143| jq ".devDependencies.\"@polkadot/api\" = \"$pjsapi_ver\"" - \144| jq ".devDependencies.\"@polkadot/types\" = \"$pjsapi_ver\"" - \145| jq ".devDependencies.\"ts-node\" = \"$tsnode_ver\"" - \146| jq ".devDependencies.\"typescript\" = \"$ts_ver\"" - \147> "$gen/package.json"148for file in .gitignore .npmignore README.md tsconfig.json; do149 cp "$TEMPLATE/$file" "$gen/"150done151package_name_replacement=printf'%s\n'"$package_name"|sed-e's/[\/&]/\\&/g'152sed -i "s/PKGNAME/$package_name_replacement/" "$gen/README.md"153154# Types template has its own .gitignore, and the rest of files is auto-generated by this script/provided in types_template.155rsync -ar --exclude .gitignore --exclude package.json --exclude tsconfig.json --exclude README.md types/ "$gen"156for file in "$gen"/augment-* "$gen"/**/types.ts; do157 sed -i '1s;^;//@ts-nocheck\n;' "$file"158done159160pushd "$gen"161git add .162popd163164pushd "$gen"165if git diff --quiet HEAD && test ! "$force"; then166 echo "no changes detected"167 exit 0168fi169popd170171mv "$gen/package.json" "$gen/package.old.json"172cat "$gen/package.old.json" \173| jq ".version = \"$new_package_version\"" - \174> "$gen/package.json"175rm "$gen/package.old.json"176pushd "$gen"177git add package.json178popd179180echo "package.json contents:"181cat "$gen/package.json"182echo "overall diff:"183pushd "$gen"184git status185git diff HEAD || true186popd187188# This check is only active if running in interactive terminal189if [ -t 0 ]; then190 read -p "Is everything ok at $gen [y/n]? " -n 1 -r191 echo192 if [[ ! $REPLY =~ ^[Yy]$ ]]; then193 echo "Aborting!"194 exit 1195 fi196fi197198pushd "$gen"199yarn200yarn prepublish201git commit -m "chore: upgrade types to v$new_package_version"202git tag --force "$repo_tag-v$new_package_version"203if test "$push" = 1; then204 git push --tags --force -u origin HEAD205else206 echo "--push not given, origin repo left intact"207 echo "To publish manually, go to $gen, and run \"git push --tags --force -u origin HEAD\""208fi209popd