/ scripts / deploy.sh
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"