difftreelog
fix type package generator for new versioning
in: master
1 file changed
tests/scripts/generate_types_package.shdiffbeforeafterboth1#!/usr/bin/env bash23set -eu45DIR=realpathdirname"$0"6TEMPLATE=$DIR/types_template7GIT_REPO=git@github.com:UniqueNetwork/unique-types-js.git89. $DIR/functions.sh1011usage() {12 echo "Usage: [RPC_URL=http://localhost:9944] $0 <--rc|--release> [--force] [--push] [--rpc-url=http://localhost:9944]" 1>&213 exit 114}1516rc=17release=18force=19push=2021for i in "$@"; do22case $i in23 --rc)24 rc=125 if test "$release"; then usage; fi26 ;;27 --release)28 release=129 if test "$rc"; then usage; fi30 ;;31 --force)32 force=133 ;;34 --push)35 push=136 ;;37 --rpc-url=*)38 RPC_URL=i39 ;;40 *)41 usage42 ;;43esac44done4546if test \( ! \( "$rc" -o "$release" \) \) -o \( "RPC_URL" = "" \); then47 usage48elif test "$rc"; then49 echo "Rc build"50else51 echo "Release build"52fi5354cd $DIR/..55yarn polkadot-types5657version=do_rpc""58spec_version=echo$version|jq-r59spec_name=echo$version|jq-r60echo "Spec version: $spec_version, name: $spec_name"6162case $spec_name in63 opal)64 package_name=@unique-nft/opal-testnet-types65 repo_branch=opal-testnet66 repo_tag=$repo_branch67 ;;68 sapphire)69 package_name=@unique-nft/sapphire-mainnet-types70 repo_branch=sapphire-mainnet71 repo_tag=$repo_branch72 ;;73 quartz)74 package_name=@unique-nft/quartz-mainnet-types75 repo_branch=quartz-mainnet76 repo_tag=$repo_branch77 ;;78 unique)79 package_name=@unique-nft/unique-mainnet-types80 repo_branch=master81 repo_tag=unique-mainnet82 ;;83 *)84 echo "unknown spec name: $spec_name"85 exit 186 ;;87esac8889if test "$rc" = 1; then90 if "$spec_name" != opal; then91 echo "rc types can only be based on opal spec"92 exit 193 fi94 package_name=@unique-nft/rc-types95 repo_branch=rc96 repo_tag=$repo_branch97fi9899package_version=spec_version.echospec_version|sed's/^0*//'.100last_patch=NEVER101for tag in git-t--refs$GIT_REPO|cut-f|sort-r; do102 tag_prefix=refs/tags/$repo_tag-v$package_version103 if [[ $tag == $tag_prefix* ]]; then104 last_patch=tag105 break;106 fi107done108echo "Package version: package_versionX, name: $package_name"109echo "Last published: $package_version$last_patch"110111if test "$last_patch" = "NEVER"; then112 new_package_version=package_version0113else114 new_package_version=package_version$((last_patch+1))115fi116package_version=package_version$last_patch117echo "New package version: $new_package_version"118119pjsapi_ver=^cat$DIR|jq-r'.dependencies."@polkadot/api"'|sed-e"s/^\^//"120tsnode_ver=^cat$DIR|jq-r'.devDependencies."ts-node"'|sed-e"s/^\^//"121ts_ver=^cat$DIR|jq-r'.devDependencies."typescript"'|sed-e"s/^\^//"122123gen=mktemp-d124pushd $gen125git clone $GIT_REPO -b $repo_branch --depth 1 .126if test "$last_patch" != "NEVER"; then127 git reset --hard $repo_tag-v$package_version128fi129git rm -r "*"130popd131132# Using old package_version here, becaue we first check if133# there is any difference between generated and already uplaoded types134cat $TEMPLATE/package.json \135| jq '.private = false' - \136| jq '.name = "'$package_name'"' - \137| jq '.version = "'$package_version'"' - \138| jq '.peerDependencies."@polkadot/api" = "'$pjsapi_ver'"' - \139| jq '.peerDependencies."@polkadot/types" = "'$pjsapi_ver'"' - \140| jq '.devDependencies."@polkadot/api" = "'$pjsapi_ver'"' - \141| jq '.devDependencies."@polkadot/types" = "'$pjsapi_ver'"' - \142| jq '.devDependencies."ts-node" = "'$tsnode_ver'"' - \143| jq '.devDependencies."typescript" = "'$ts_ver'"' - \144> $gen/package.json145for file in .gitignore .npmignore README.md tsconfig.json; do146 cp $TEMPLATE/$file $gen/147done148package_name_replacement=printf'%s\n'"$package_name"|sed-e's/[\/&]/\\&/g'149sed -i 's/PKGNAME/'$package_name_replacement'/' $gen/README.md150151rsync -ar --exclude .gitignore src/interfaces/ $gen152for file in $gen/augment-* $gen/**/types.ts $gen/registry.ts; do153 sed -i '1s;^;//@ts-nocheck\n;' $file154done155156pushd $gen157git add .158popd159160pushd $gen161if git diff --quiet HEAD && test ! "$force"; then162 echo "no changes detected"163 exit 0164fi165popd166167mv $gen/package.json $gen/package.old.json168cat $gen/package.old.json \169| jq '.version = "'$new_package_version'"' - \170> $gen/package.json171rm $gen/package.old.json172pushd $gen173git add package.json174popd175176echo "package.json contents:"177cat $gen/package.json178echo "overall diff:"179pushd $gen180git status181git diff HEAD || true182popd183184# This check is only active if running in interactive terminal185if [ -t 0 ]; then186 read -p "Is everything ok at $gen [y/n]? " -n 1 -r187 echo188 if [[ ! $REPLY =~ ^[Yy]$ ]]; then189 echo "Aborting!"190 exit 1191 fi192fi193194pushd $gen195yarn196yarn prepublish197git commit -m "chore: upgrade types to v$new_package_version"198git tag --force $repo_tag-v$new_package_version199if test "$push" = 1; then200 git push --tags --force -u origin HEAD201else202 echo "--push not given, origin repo left intact"203 echo "To publish manually, go to $gen, and run \"git push --tags --force -u origin HEAD\""204fi205popd1#!/usr/bin/env bash23set -eu45DIR=realpathdirname"$0"6TEMPLATE=$DIR/types_template7GIT_REPO=git@github.com:UniqueNetwork/unique-types-js.git89. $DIR/functions.sh1011usage() {12 echo "Usage: [RPC_URL=http://localhost:9944] $0 <--rc|--release> [--force] [--push] [--rpc-url=http://localhost:9944]" 1>&213 exit 114}1516rc=17release=18force=19push=2021for i in "$@"; do22case $i in23 --rc)24 rc=125 if test "$release"; then usage; fi26 ;;27 --release)28 release=129 if test "$rc"; then usage; fi30 ;;31 --force)32 force=133 ;;34 --push)35 push=136 ;;37 --rpc-url=*)38 RPC_URL=i39 ;;40 *)41 usage42 ;;43esac44done4546if test \( ! \( "$rc" -o "$release" \) \) -o \( "RPC_URL" = "" \); then47 usage48elif test "$rc"; then49 echo "Rc build"50else51 echo "Release build"52fi5354cd $DIR/..55yarn polkadot-types5657version=do_rpc""58spec_version=echo$version|jq-r59spec_name=echo$version|jq-r60echo "Spec version: $spec_version, name: $spec_name"6162case $spec_name in63 opal)64 package_name=@unique-nft/opal-testnet-types65 repo_branch=opal-testnet66 repo_tag=$repo_branch67 ;;68 sapphire)69 package_name=@unique-nft/sapphire-mainnet-types70 repo_branch=sapphire-mainnet71 repo_tag=$repo_branch72 ;;73 quartz)74 package_name=@unique-nft/quartz-mainnet-types75 repo_branch=quartz-mainnet76 repo_tag=$repo_branch77 ;;78 unique)79 package_name=@unique-nft/unique-mainnet-types80 repo_branch=master81 repo_tag=unique-mainnet82 ;;83 *)84 echo "unknown spec name: $spec_name"85 exit 186 ;;87esac8889if test "$rc" = 1; then90 if "$spec_name" != opal; then91 echo "rc types can only be based on opal spec"92 exit 193 fi94 package_name=@unique-nft/rc-types95 repo_branch=rc96 repo_tag=$repo_branch97fi9899package_version=spec_version.echospec_version|sed's/^0*//'.100last_patch=NEVER101for tag in git-t--refs$GIT_REPO|cut-f|sort-r; do102 tag_prefix=refs/tags/$repo_tag-v$package_version103 if [[ $tag == $tag_prefix* ]]; then104 last_patch=tag105 break;106 fi107done108echo "Package version: package_versionX, name: $package_name"109echo "Last published: $package_version$last_patch"110111if test "$last_patch" = "NEVER"; then112 new_package_version=package_version0113else114 new_package_version=package_version$((last_patch+1))115fi116package_version=package_version$last_patch117echo "New package version: $new_package_version"118119pjsapi_ver=^cat$DIR|jq-r'.dependencies."@polkadot/api"'|sed-e"s/^\^//"120tsnode_ver=^cat$DIR|jq-r'.devDependencies."ts-node"'|sed-e"s/^\^//"121ts_ver=^cat$DIR|jq-r'.devDependencies."typescript"'|sed-e"s/^\^//"122123gen=mktemp-d124pushd $gen125git clone $GIT_REPO -b $repo_branch --depth 1 .126if test "$last_patch" != "NEVER"; then127 git reset --hard $repo_tag-v$package_version128fi129git rm -r "*"130popd131132# Using old package_version here, becaue we first check if133# there is any difference between generated and already uplaoded types134cat $TEMPLATE/package.json \135| jq '.private = false' - \136| jq '.name = "'$package_name'"' - \137| jq '.version = "'$package_version'"' - \138| jq '.peerDependencies."@polkadot/api" = "'$pjsapi_ver'"' - \139| jq '.peerDependencies."@polkadot/types" = "'$pjsapi_ver'"' - \140| jq '.devDependencies."@polkadot/api" = "'$pjsapi_ver'"' - \141| jq '.devDependencies."@polkadot/types" = "'$pjsapi_ver'"' - \142| jq '.devDependencies."ts-node" = "'$tsnode_ver'"' - \143| jq '.devDependencies."typescript" = "'$ts_ver'"' - \144> $gen/package.json145for file in .gitignore .npmignore README.md tsconfig.json; do146 cp $TEMPLATE/$file $gen/147done148package_name_replacement=printf'%s\n'"$package_name"|sed-e's/[\/&]/\\&/g'149sed -i 's/PKGNAME/'$package_name_replacement'/' $gen/README.md150151rsync -ar --exclude .gitignore src/interfaces/ $gen152for file in $gen/augment-* $gen/**/types.ts $gen/registry.ts; do153 sed -i '1s;^;//@ts-nocheck\n;' $file154done155156pushd $gen157git add .158popd159160pushd $gen161if git diff --quiet HEAD && test ! "$force"; then162 echo "no changes detected"163 exit 0164fi165popd166167mv $gen/package.json $gen/package.old.json168cat $gen/package.old.json \169| jq '.version = "'$new_package_version'"' - \170> $gen/package.json171rm $gen/package.old.json172pushd $gen173git add package.json174popd175176echo "package.json contents:"177cat $gen/package.json178echo "overall diff:"179pushd $gen180git status181git diff HEAD || true182popd183184# This check is only active if running in interactive terminal185if [ -t 0 ]; then186 read -p "Is everything ok at $gen [y/n]? " -n 1 -r187 echo188 if [[ ! $REPLY =~ ^[Yy]$ ]]; then189 echo "Aborting!"190 exit 1191 fi192fi193194pushd $gen195yarn196yarn prepublish197git commit -m "chore: upgrade types to v$new_package_version"198git tag --force $repo_tag-v$new_package_version199if test "$push" = 1; then200 git push --tags --force -u origin HEAD201else202 echo "--push not given, origin repo left intact"203 echo "To publish manually, go to $gen, and run \"git push --tags --force -u origin HEAD\""204fi205popd