80 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env bash
 | |
| #
 | |
| # Convenience script to easily deploy a software update to a testnet
 | |
| #
 | |
| set -e
 | |
| SOLANA_ROOT="$(cd "$(dirname "$0")"/..; pwd)"
 | |
| 
 | |
| maybeKeypair=
 | |
| while [[ ${1:0:2} = -- ]]; do
 | |
|   if [[ $1 = --keypair && -n $2 ]]; then
 | |
|     maybeKeypair="$1 $2"
 | |
|     shift 2
 | |
|   else
 | |
|     echo "Error: Unknown option: $1"
 | |
|     exit 1
 | |
|   fi
 | |
| done
 | |
| 
 | |
| URL=$1
 | |
| TAG=$2
 | |
| OS=${3:-linux}
 | |
| 
 | |
| if [[ -z $URL || -z $TAG ]]; then
 | |
|   echo "Usage: $0 [stable|localhost|RPC URL] [edge|beta|release tag] [linux|osx|windows]"
 | |
|   exit 0
 | |
| fi
 | |
| 
 | |
| if [[ ! -f update_manifest_keypair.json ]]; then
 | |
|   "$SOLANA_ROOT"/scripts/solana-install-update-manifest-keypair.sh "$OS"
 | |
| fi
 | |
| 
 | |
| case "$OS" in
 | |
| osx)
 | |
|   TARGET=x86_64-apple-darwin
 | |
|   ;;
 | |
| linux)
 | |
|   TARGET=x86_64-unknown-linux-gnu
 | |
|   ;;
 | |
| windows)
 | |
|   TARGET=x86_64-pc-windows-msvc
 | |
|   ;;
 | |
| *)
 | |
|   TARGET=unknown-unknown-unknown
 | |
|   ;;
 | |
| esac
 | |
| 
 | |
| case $URL in
 | |
| stable)
 | |
|   URL=http://devnet.solana.com
 | |
|   ;;
 | |
| localhost)
 | |
|   URL=http://localhost:8899
 | |
|   ;;
 | |
| *)
 | |
|   ;;
 | |
| esac
 | |
| 
 | |
| case $TAG in
 | |
| edge|beta)
 | |
|   DOWNLOAD_URL=http://release.solana.com/"$TAG"/solana-release-$TARGET.tar.bz2
 | |
|   ;;
 | |
| *)
 | |
|   DOWNLOAD_URL=https://github.com/solana-labs/solana/releases/download/"$TAG"/solana-release-$TARGET.tar.bz2
 | |
|   ;;
 | |
| esac
 | |
| 
 | |
| # Prefer possible `cargo build` binaries over PATH binaries
 | |
| PATH="$SOLANA_ROOT"/target/debug:$PATH
 | |
| 
 | |
| set -x
 | |
| # shellcheck disable=SC2086 # Don't want to double quote $maybeKeypair
 | |
| balance=$(solana $maybeKeypair --url "$URL" balance --lamports)
 | |
| if [[ $balance = "0 lamports" ]]; then
 | |
|   # shellcheck disable=SC2086 # Don't want to double quote $maybeKeypair
 | |
|   solana $maybeKeypair --url "$URL" airdrop 0.000000042
 | |
| fi
 | |
| 
 | |
| # shellcheck disable=SC2086 # Don't want to double quote $maybeKeypair
 | |
| solana-install deploy $maybeKeypair --url "$URL" "$DOWNLOAD_URL" update_manifest_keypair.json
 |