difftreelog
test script clarification messages
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:9933] $0 [--rc|--release|--sapphire] [--force] [--rpc-url=http://localhost:9933]" 1>&213 exit 114}1516rc=17sapphire=18release=19force=2021for i in "$@"; do22case $i in23 --rc)24 rc=125 if test "$release" -o "$sapphire"; then usage; fi26 ;;27 --sapphire)28 sapphire=129 if test "$rc" -o "$release"; then usage; fi30 ;;31 --release)32 release=133 if test "$rc" -o "$sapphire"; then usage; fi34 ;;35 --force)36 force=137 ;;38 --rpc-url=*)39 RPC_URL=i40 ;;41 *)42 usage43 ;;44esac45done4647if test \( ! \( "$rc" -o "$release" -o "$sapphire" \) \) -o \( "RPC_URL" = "" \); then48 usage49elif test "$rc"; then50 echo "Rc build"51else52 echo "Release build"53fi5455cd $DIR/..56yarn polkadot-types5758version=do_rpc""59spec_version=echo$version|jq-r60spec_name=echo$version|jq-r61echo "Spec version: $spec_version, name: $spec_name"6263case $spec_name in64 opal)65 package_name=@unique-nft/opal-testnet-types66 repo_branch=opal-testnet67 repo_tag=$repo_branch68 ;;69 quartz)70 package_name=@unique-nft/quartz-mainnet-types71 repo_branch=quartz-mainnet72 repo_tag=$repo_branch73 ;;74 unique)75 package_name=@unique-nft/unique-mainnet-types76 repo_branch=master77 repo_tag=unique-mainnet78 ;;79 *)80 echo "unknown spec name: $spec_name"81 exit 182 ;;83esac8485if test "$rc" = 1; then86 if "$spec_name" != opal; then87 echo "rc types can only be based on opal spec"88 exit 189 fi90 package_name=@unique-nft/rc-types91 repo_branch=rc92 repo_tag=$repo_branch93fi94if test "$sapphire" = 1; then95 if "$spec_name" != opal; then96 echo "sapphire types can only be based on opal spec"97 exit 198 fi99 package_name=@unique-nft/sapphire-mainnet-types100 repo_branch=sapphire-mainnet101 repo_tag=$repo_branch102fi103104package_version=spec_version.echospec_version|sed's/^0*//'.105last_patch=NEVER106for tag in git-t--refs$GIT_REPO|cut-f|sort-r; do107 tag_prefix=refs/tags/$repo_tag-v$package_version108 if [[ $tag == $tag_prefix* ]]; then109 last_patch=tag110 break;111 fi112done113echo "Package version: package_versionX, name: $package_name"114echo "Last published: $package_version$last_patch"115116if test "$last_patch" = "NEVER"; then117 new_package_version=package_version0118else119 new_package_version=package_version$((last_patch+1))120fi121package_version=package_version$last_patch122echo "New package version: $new_package_version"123124pjsapi_ver=^cat$DIR|jq-r'.dependencies."@polkadot/api"'|sed-e"s/^\^//"125tsnode_ver=^cat$DIR|jq-r'.devDependencies."ts-node"'|sed-e"s/^\^//"126ts_ver=^cat$DIR|jq-r'.devDependencies."typescript"'|sed-e"s/^\^//"127128gen=mktemp-d129pushd $gen130git clone $GIT_REPO -b $repo_branch --depth 1 .131if test "$last_patch" != "NEVER"; then132 git reset --hard $repo_tag-v$package_version133fi134git rm -r "*"135popd136137# Using old package_version here, becaue we first check if138# there is any difference between generated and already uplaoded types139cat $TEMPLATE/package.json \140| jq '.private = false' - \141| jq '.name = "'$package_name'"' - \142| jq '.version = "'$package_version'"' - \143| jq '.peerDependencies."@polkadot/api" = "'$pjsapi_ver'"' - \144| jq '.peerDependencies."@polkadot/types" = "'$pjsapi_ver'"' - \145| jq '.devDependencies."@polkadot/api" = "'$pjsapi_ver'"' - \146| jq '.devDependencies."@polkadot/types" = "'$pjsapi_ver'"' - \147| jq '.devDependencies."ts-node" = "'$tsnode_ver'"' - \148| jq '.devDependencies."typescript" = "'$ts_ver'"' - \149> $gen/package.json150for file in .gitignore .npmignore README.md tsconfig.json; do151 cp $TEMPLATE/$file $gen/152done153package_name_replacement=printf'%s\n'"$package_name"|sed-e's/[\/&]/\\&/g'154sed -i 's/PKGNAME/'$package_name_replacement'/' $gen/README.md155156rsync -ar --exclude .gitignore src/interfaces/ $gen157for file in $gen/augment-* $gen/**/types.ts $gen/registry.ts; do158 sed -i '1s;^;//@ts-nocheck\n;' $file159done160161pushd $gen162git add .163popd164165pushd $gen166if git diff --quiet HEAD && test ! "$force"; then167 echo "no changes detected"168 exit 0169fi170popd171172mv $gen/package.json $gen/package.old.json173cat $gen/package.old.json \174| jq '.version = "'$new_package_version'"' - \175> $gen/package.json176rm $gen/package.old.json177pushd $gen178git add package.json179popd180181echo "package.json contents:"182cat $gen/package.json183echo "overall diff:"184pushd $gen185git status186git diff HEAD || true187popd188189# This check is only active if running in interactive terminal190if [ -t 0 ]; then191 read -p "Is everything ok at $gen? " -n 1 -r192 echo193 if [[ ! $REPLY =~ ^[Yy]$ ]]; then194 echo "Aborting!"195 exit 1196 fi197fi198199pushd $gen200yarn201yarn prepublish202git commit -m "chore: upgrade types to v$new_package_version"203git tag --force $repo_tag-v$new_package_version204git push --tags --force -u origin HEAD205#yarn publish206popd1#!/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:9933] $0 <--rc|--release|--sapphire> [--force] [--push] [--rpc-url=http://localhost:9933]" 1>&213 exit 114}1516rc=17sapphire=18release=19force=20push=2122for i in "$@"; do23case $i in24 --rc)25 rc=126 if test "$release" -o "$sapphire"; then usage; fi27 ;;28 --sapphire)29 sapphire=130 if test "$rc" -o "$release"; then usage; fi31 ;;32 --release)33 release=134 if test "$rc" -o "$sapphire"; then usage; fi35 ;;36 --force)37 force=138 ;;39 --push)40 push=141 ;;42 --rpc-url=*)43 RPC_URL=i44 ;;45 *)46 usage47 ;;48esac49done5051if test \( ! \( "$rc" -o "$release" -o "$sapphire" \) \) -o \( "RPC_URL" = "" \); then52 usage53elif test "$rc"; then54 echo "Rc build"55else56 echo "Release build"57fi5859cd $DIR/..60yarn polkadot-types6162version=do_rpc""63spec_version=echo$version|jq-r64spec_name=echo$version|jq-r65echo "Spec version: $spec_version, name: $spec_name"6667case $spec_name in68 opal)69 package_name=@unique-nft/opal-testnet-types70 repo_branch=opal-testnet71 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_branch97fi98if test "$sapphire" = 1; then99 if "$spec_name" != opal; then100 echo "sapphire types can only be based on opal spec"101 exit 1102 fi103 package_name=@unique-nft/sapphire-mainnet-types104 repo_branch=sapphire-mainnet105 repo_tag=$repo_branch106fi107108package_version=spec_version.echospec_version|sed's/^0*//'.109last_patch=NEVER110for tag in git-t--refs$GIT_REPO|cut-f|sort-r; do111 tag_prefix=refs/tags/$repo_tag-v$package_version112 if [[ $tag == $tag_prefix* ]]; then113 last_patch=tag114 break;115 fi116done117echo "Package version: package_versionX, name: $package_name"118echo "Last published: $package_version$last_patch"119120if test "$last_patch" = "NEVER"; then121 new_package_version=package_version0122else123 new_package_version=package_version$((last_patch+1))124fi125package_version=package_version$last_patch126echo "New package version: $new_package_version"127128pjsapi_ver=^cat$DIR|jq-r'.dependencies."@polkadot/api"'|sed-e"s/^\^//"129tsnode_ver=^cat$DIR|jq-r'.devDependencies."ts-node"'|sed-e"s/^\^//"130ts_ver=^cat$DIR|jq-r'.devDependencies."typescript"'|sed-e"s/^\^//"131132gen=mktemp-d133pushd $gen134git clone $GIT_REPO -b $repo_branch --depth 1 .135if test "$last_patch" != "NEVER"; then136 git reset --hard $repo_tag-v$package_version137fi138git rm -r "*"139popd140141# Using old package_version here, becaue we first check if142# there is any difference between generated and already uplaoded types143cat $TEMPLATE/package.json \144| jq '.private = false' - \145| jq '.name = "'$package_name'"' - \146| jq '.version = "'$package_version'"' - \147| jq '.peerDependencies."@polkadot/api" = "'$pjsapi_ver'"' - \148| jq '.peerDependencies."@polkadot/types" = "'$pjsapi_ver'"' - \149| jq '.devDependencies."@polkadot/api" = "'$pjsapi_ver'"' - \150| jq '.devDependencies."@polkadot/types" = "'$pjsapi_ver'"' - \151| jq '.devDependencies."ts-node" = "'$tsnode_ver'"' - \152| jq '.devDependencies."typescript" = "'$ts_ver'"' - \153> $gen/package.json154for file in .gitignore .npmignore README.md tsconfig.json; do155 cp $TEMPLATE/$file $gen/156done157package_name_replacement=printf'%s\n'"$package_name"|sed-e's/[\/&]/\\&/g'158sed -i 's/PKGNAME/'$package_name_replacement'/' $gen/README.md159160rsync -ar --exclude .gitignore src/interfaces/ $gen161for file in $gen/augment-* $gen/**/types.ts $gen/registry.ts; do162 sed -i '1s;^;//@ts-nocheck\n;' $file163done164165pushd $gen166git add .167popd168169pushd $gen170if git diff --quiet HEAD && test ! "$force"; then171 echo "no changes detected"172 exit 0173fi174popd175176mv $gen/package.json $gen/package.old.json177cat $gen/package.old.json \178| jq '.version = "'$new_package_version'"' - \179> $gen/package.json180rm $gen/package.old.json181pushd $gen182git add package.json183popd184185echo "package.json contents:"186cat $gen/package.json187echo "overall diff:"188pushd $gen189git status190git diff HEAD || true191popd192193# This check is only active if running in interactive terminal194if [ -t 0 ]; then195 read -p "Is everything ok at $gen [y/n]? " -n 1 -r196 echo197 if [[ ! $REPLY =~ ^[Yy]$ ]]; then198 echo "Aborting!"199 exit 1200 fi201fi202203pushd $gen204yarn205yarn prepublish206git commit -m "chore: upgrade types to v$new_package_version"207git tag --force $repo_tag-v$new_package_version208if test "$push" = 1; then209 git push --tags --force -u origin HEAD210else211 echo "--push not given, origin repo left intact"212 echo "To publish manually, go to $gen, and run \"git push --tags --force -u origin HEAD\""213fi214popd