deploy.sh
1 #!/usr/bin/env bash 2 3 # deploy html to a server and then add html to ipfs 4 5 # go to current folder 6 cd "$(dirname "$0")" 7 8 # add env vars 9 if [ -f ../.deploy-env ]; then 10 export $(echo $(cat ../.deploy-env | sed 's/#.*//g'| xargs) | envsubst) 11 fi 12 13 # check creds 14 if [ -z "${DEPLOY_HOST+xxx}" ]; then echo "DEPLOY_HOST not set" && exit; fi 15 if [ -z "${DEPLOY_USER+xxx}" ]; then echo "DEPLOY_USER not set" && exit; fi 16 if [ -z "${DEPLOY_PASSWORD+xxx}" ]; then echo "DEPLOY_PASSWORD not set" && exit; fi 17 18 # save version 19 PLEBCHAN_VERSION=$(node -e "console.log(require('../package.json').version)") 20 PLEBCHAN_HTML_NAME="plebchan-html-$PLEBCHAN_VERSION" 21 22 SCRIPT=" 23 # download html 24 cd ~ 25 rm $PLEBCHAN_HTML_NAME.zip 26 rm -fr $PLEBCHAN_HTML_NAME 27 wget https://github.com/plebbit/plebchan/releases/download/v$PLEBCHAN_VERSION/$PLEBCHAN_HTML_NAME.zip || exit 28 29 # extract html 30 unzip $PLEBCHAN_HTML_NAME.zip || exit 31 rm $PLEBCHAN_HTML_NAME.zip || exit 32 33 # add to ipfs 34 CID=\`ipfs add --recursive --pin --quieter $PLEBCHAN_HTML_NAME | tail -n 1\` 35 ipfs pin add --recursive \"\$CID\" 36 37 # start ipfs daemon if not started 38 ipfs init 39 nohup ipfs daemon & 40 41 # the CID of plebchan html, add this CID to ENS 42 sleep 3 43 echo \"\" 44 CID=\`ipfs cid base32 \$CID\` 45 echo $PLEBCHAN_HTML_NAME \"CID: \$CID\" 46 echo \"\" 47 " 48 49 # execute script over ssh 50 echo "$SCRIPT" | sshpass -p "$DEPLOY_PASSWORD" ssh "$DEPLOY_USER"@"$DEPLOY_HOST"