Merge branch 'master' into ops/fix-tor-freebsd
This commit is contained in:
		
						commit
						c525689854
					
				@ -39,6 +39,9 @@ BITCOIN_INSTALL=ON
 | 
			
		||||
BISQ_INSTALL=ON
 | 
			
		||||
ELEMENTS_INSTALL=ON
 | 
			
		||||
 | 
			
		||||
# install UNFURL
 | 
			
		||||
UNFURL_INSTALL=ON
 | 
			
		||||
 | 
			
		||||
# configure 4 network instances
 | 
			
		||||
BITCOIN_MAINNET_ENABLE=ON
 | 
			
		||||
BITCOIN_MAINNET_MINFEE_ENABLE=ON
 | 
			
		||||
@ -49,8 +52,10 @@ ELEMENTS_LIQUID_ENABLE=ON
 | 
			
		||||
ELEMENTS_LIQUIDTESTNET_ENABLE=ON
 | 
			
		||||
 | 
			
		||||
# enable lightmode and disable compaction to fit on 1TB SSD drive
 | 
			
		||||
BITCOIN_ELECTRS_INSTALL=ON
 | 
			
		||||
BITCOIN_ELECTRS_LIGHT_MODE=ON
 | 
			
		||||
BITCOIN_ELECTRS_COMPACTION=OFF
 | 
			
		||||
ELEMENTS_ELECTRS_INSTALL=ON
 | 
			
		||||
ELEMENTS_ELECTRS_LIGHT_MODE=ON
 | 
			
		||||
ELEMENTS_ELECTRS_COMPACTION=OFF
 | 
			
		||||
 | 
			
		||||
@ -280,6 +285,12 @@ BISQ_HOME=/bisq
 | 
			
		||||
# tor HS folder
 | 
			
		||||
BISQ_TOR_HS=bisq
 | 
			
		||||
 | 
			
		||||
# Unfurl user/group
 | 
			
		||||
UNFURL_USER=unfurl
 | 
			
		||||
UNFURL_GROUP=unfurl
 | 
			
		||||
# Unfurl home folder
 | 
			
		||||
UNFURL_HOME=/unfurl
 | 
			
		||||
 | 
			
		||||
# liquid user/group
 | 
			
		||||
ELEMENTS_USER=elements
 | 
			
		||||
ELEMENTS_GROUP=elements
 | 
			
		||||
@ -319,6 +330,13 @@ BISQ_REPO_BRANCH=master
 | 
			
		||||
BISQ_LATEST_RELEASE=master
 | 
			
		||||
echo -n '.'
 | 
			
		||||
 | 
			
		||||
UNFURL_REPO_URL=https://github.com/mempool/mempool
 | 
			
		||||
UNFURL_REPO_NAME=unfurl
 | 
			
		||||
UNFURL_REPO_BRANCH=master
 | 
			
		||||
#UNFURL_LATEST_RELEASE=$(curl -s https://api.github.com/repos/mempool/mempool/releases/latest|grep tag_name|head -1|cut -d '"' -f4)
 | 
			
		||||
UNFURL_LATEST_RELEASE=master
 | 
			
		||||
echo -n '.'
 | 
			
		||||
 | 
			
		||||
ELEMENTS_REPO_URL=https://github.com/ElementsProject/elements
 | 
			
		||||
ELEMENTS_REPO_NAME=elements
 | 
			
		||||
ELEMENTS_REPO_BRANCH=master
 | 
			
		||||
@ -355,6 +373,10 @@ DEBIAN_PKG+=(libboost-system-dev libboost-filesystem-dev libboost-chrono-dev lib
 | 
			
		||||
DEBIAN_PKG+=(nodejs npm mariadb-server nginx-core python3-certbot-nginx rsync ufw)
 | 
			
		||||
DEBIAN_PKG+=(geoipupdate)
 | 
			
		||||
 | 
			
		||||
DEBIAN_UNFURL_PKG=()
 | 
			
		||||
DEBIAN_UNFURL_PKG+=(cups chromium-bsu libatk1.0 libatk-bridge2.0 libxkbcommon-dev libxcomposite-dev)
 | 
			
		||||
DEBIAN_UNFURL_PKG+=(libxdamage-dev libxrandr-dev libgbm-dev libpango1.0-dev libasound-dev)
 | 
			
		||||
 | 
			
		||||
# packages needed for mempool ecosystem
 | 
			
		||||
FREEBSD_PKG=()
 | 
			
		||||
FREEBSD_PKG+=(zsh sudo git screen curl wget calc neovim)
 | 
			
		||||
@ -716,6 +738,7 @@ Signet:Enable Bitcoin Signet:ON
 | 
			
		||||
Liquid:Enable Elements Liquid:ON
 | 
			
		||||
Liquidtestnet:Enable Elements Liquidtestnet:ON
 | 
			
		||||
Bisq:Enable Bisq:ON
 | 
			
		||||
Unfurl:Enable Unfurl:ON
 | 
			
		||||
EOF
 | 
			
		||||
 | 
			
		||||
cat $input | sed -e 's/^/"/' -e 's/:/" "/g' -e 's/$/"/' >$output
 | 
			
		||||
@ -789,6 +812,18 @@ else
 | 
			
		||||
    ELEMENTS_INSTALL=OFF
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [ "${BITCOIN_MAINNET_ENABLE}" = ON -o "${BITCOIN_TESTNET_ENABLE}" = ON -o "${BITCOIN_SIGNET_ENABLE}" = ON ];then
 | 
			
		||||
    BITCOIN_ELECTRS_INSTALL=ON
 | 
			
		||||
else
 | 
			
		||||
    BITCOIN_ELECTRS_INSTALL=OFF
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [ "${ELEMENTS_LIQUID_ENABLE}" = ON -o "${ELEMENTS_LIQUIDTESTNET_ENABLE}" = ON ];then
 | 
			
		||||
    ELEMENTS_ELECTRS_INSTALL=ON
 | 
			
		||||
else
 | 
			
		||||
    ELEMENTS_ELECTRS_INSTALL=OFF
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if grep Bisq $tempfile >/dev/null 2>&1;then
 | 
			
		||||
    BISQ_INSTALL=ON
 | 
			
		||||
    BISQ_MAINNET_ENABLE=ON
 | 
			
		||||
@ -797,6 +832,12 @@ else
 | 
			
		||||
    BISQ_MAINNET_ENABLE=OFF
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if grep Unfurl $tempfile >/dev/null 2>&1;then
 | 
			
		||||
    UNFURL_INSTALL=ON
 | 
			
		||||
else
 | 
			
		||||
    UNFURL_INSTALL=OFF
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
##################
 | 
			
		||||
## dialog part 2 #
 | 
			
		||||
##################
 | 
			
		||||
@ -1097,65 +1138,72 @@ fi
 | 
			
		||||
# Bitcoin -> Electrs installation #
 | 
			
		||||
###################################
 | 
			
		||||
 | 
			
		||||
echo "[*] Creating Bitcoin Electrs data folder"
 | 
			
		||||
osSudo "${ROOT_USER}" mkdir -p "${BITCOIN_ELECTRS_HOME}"
 | 
			
		||||
osSudo "${ROOT_USER}" chown -R "${BITCOIN_USER}:${BITCOIN_GROUP}" "${BITCOIN_ELECTRS_HOME}"
 | 
			
		||||
if [ "${BITCOIN_MAINNET_ENABLE}" = ON ];then 
 | 
			
		||||
    osSudo "${ROOT_USER}" chown -R "${BITCOIN_USER}:${BITCOIN_GROUP}" "${ELECTRS_MAINNET_DATA}"
 | 
			
		||||
if [ "${BITCOIN_ELECTRS_INSTALL}" = ON ];then
 | 
			
		||||
 | 
			
		||||
    echo "[*] Creating Bitcoin Electrs data folder"
 | 
			
		||||
    osSudo "${ROOT_USER}" mkdir -p "${BITCOIN_ELECTRS_HOME}"
 | 
			
		||||
    osSudo "${ROOT_USER}" chown -R "${BITCOIN_USER}:${BITCOIN_GROUP}" "${BITCOIN_ELECTRS_HOME}"
 | 
			
		||||
    if [ "${BITCOIN_MAINNET_ENABLE}" = ON ];then
 | 
			
		||||
        osSudo "${ROOT_USER}" chown -R "${BITCOIN_USER}:${BITCOIN_GROUP}" "${ELECTRS_MAINNET_DATA}"
 | 
			
		||||
    fi
 | 
			
		||||
    if [ "${BITCOIN_TESTNET_ENABLE}" = ON ];then
 | 
			
		||||
        osSudo "${ROOT_USER}" chown -R "${BITCOIN_USER}:${BITCOIN_GROUP}" "${ELECTRS_TESTNET_DATA}"
 | 
			
		||||
    fi
 | 
			
		||||
    if [ "${BITCOIN_SIGNET_ENABLE}" = ON ];then
 | 
			
		||||
        osSudo "${ROOT_USER}" chown -R "${BITCOIN_USER}:${BITCOIN_GROUP}" "${ELECTRS_SIGNET_DATA}"
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    echo "[*] Cloning Bitcoin Electrs repo from ${BITCOIN_ELECTRS_REPO_URL}"
 | 
			
		||||
    osSudo "${BITCOIN_USER}" git config --global advice.detachedHead false
 | 
			
		||||
    osSudo "${BITCOIN_USER}" git clone --branch "${BITCOIN_ELECTRS_REPO_BRANCH}" "${BITCOIN_ELECTRS_REPO_URL}" "${BITCOIN_HOME}/${BITCOIN_ELECTRS_REPO_NAME}"
 | 
			
		||||
 | 
			
		||||
    echo "[*] Checking out Electrs ${BITCOIN_ELECTRS_LATEST_RELEASE}"
 | 
			
		||||
    osSudo "${BITCOIN_USER}" sh -c "cd ${BITCOIN_HOME}/${BITCOIN_ELECTRS_REPO_NAME} && git checkout ${BITCOIN_ELECTRS_LATEST_RELEASE}"
 | 
			
		||||
 | 
			
		||||
    case $OS in
 | 
			
		||||
        FreeBSD)
 | 
			
		||||
           echo "[*] Installing Rust from pkg install"
 | 
			
		||||
        ;;
 | 
			
		||||
        Debian)
 | 
			
		||||
           echo "[*] Installing Rust from rustup.rs"
 | 
			
		||||
           osSudo "${BITCOIN_USER}" sh -c "cd ${BITCOIN_ELECTRS_HOME} && curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y"
 | 
			
		||||
        ;;
 | 
			
		||||
    esac
 | 
			
		||||
 | 
			
		||||
    echo "[*] Building Bitcoin Electrs release binary"
 | 
			
		||||
    osSudo "${BITCOIN_USER}" sh -c "cd ${BITCOIN_ELECTRS_HOME} && cargo run --release --bin electrs -- --version" || true
 | 
			
		||||
 | 
			
		||||
    case $OS in
 | 
			
		||||
        FreeBSD)
 | 
			
		||||
            echo "[*] Patching Bitcoin Electrs code for FreeBSD"
 | 
			
		||||
            osSudo "${BITCOIN_USER}" sh -c "cd \"${BITCOIN_HOME}/.cargo/registry/src/github.com-1ecc6299db9ec823/sysconf-0.3.4\" && patch -p1 < \"${MEMPOOL_HOME}/${MEMPOOL_REPO_NAME}/production/freebsd/sysconf.patch\""
 | 
			
		||||
            osSudo "${BITCOIN_USER}" sh -c "cd \"${BITCOIN_ELECTRS_HOME}/src/new_index/\" && sed -i.bak -e s/Snappy/None/ db.rs && rm db.rs.bak"
 | 
			
		||||
            osSudo "${BITCOIN_USER}" sh -c "cd \"${BITCOIN_ELECTRS_HOME}/src/bin/\" && sed -i.bak -e 's/from_secs(5)/from_secs(1)/' electrs.rs && rm electrs.rs.bak"
 | 
			
		||||
        ;;
 | 
			
		||||
        Debian)
 | 
			
		||||
        ;;
 | 
			
		||||
    esac
 | 
			
		||||
 | 
			
		||||
    echo "[*] Building Bitcoin Electrs release binary"
 | 
			
		||||
    osSudo "${BITCOIN_USER}" sh -c "cd ${BITCOIN_ELECTRS_HOME} && cargo run --release --bin electrs -- --version"
 | 
			
		||||
fi
 | 
			
		||||
if [ "${BITCOIN_TESTNET_ENABLE}" = ON ];then 
 | 
			
		||||
    osSudo "${ROOT_USER}" chown -R "${BITCOIN_USER}:${BITCOIN_GROUP}" "${ELECTRS_TESTNET_DATA}"
 | 
			
		||||
fi
 | 
			
		||||
if [ "${BITCOIN_SIGNET_ENABLE}" = ON ];then 
 | 
			
		||||
    osSudo "${ROOT_USER}" chown -R "${BITCOIN_USER}:${BITCOIN_GROUP}" "${ELECTRS_SIGNET_DATA}"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
echo "[*] Cloning Bitcoin Electrs repo from ${BITCOIN_ELECTRS_REPO_URL}"
 | 
			
		||||
osSudo "${BITCOIN_USER}" git config --global advice.detachedHead false
 | 
			
		||||
osSudo "${BITCOIN_USER}" git clone --branch "${BITCOIN_ELECTRS_REPO_BRANCH}" "${BITCOIN_ELECTRS_REPO_URL}" "${BITCOIN_HOME}/${BITCOIN_ELECTRS_REPO_NAME}"
 | 
			
		||||
 | 
			
		||||
echo "[*] Checking out Electrs ${BITCOIN_ELECTRS_LATEST_RELEASE}"
 | 
			
		||||
osSudo "${BITCOIN_USER}" sh -c "cd ${BITCOIN_HOME}/${BITCOIN_ELECTRS_REPO_NAME} && git checkout ${BITCOIN_ELECTRS_LATEST_RELEASE}"
 | 
			
		||||
 | 
			
		||||
case $OS in
 | 
			
		||||
    FreeBSD)
 | 
			
		||||
       echo "[*] Installing Rust from pkg install"
 | 
			
		||||
    ;;
 | 
			
		||||
    Debian)
 | 
			
		||||
       echo "[*] Installing Rust from rustup.rs"
 | 
			
		||||
       osSudo "${BITCOIN_USER}" sh -c "cd ${BITCOIN_ELECTRS_HOME} && curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y"
 | 
			
		||||
    ;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
echo "[*] Building Bitcoin Electrs release binary"
 | 
			
		||||
osSudo "${BITCOIN_USER}" sh -c "cd ${BITCOIN_ELECTRS_HOME} && cargo run --release --bin electrs -- --version" || true
 | 
			
		||||
 | 
			
		||||
case $OS in
 | 
			
		||||
    FreeBSD)
 | 
			
		||||
        echo "[*] Patching Bitcoin Electrs code for FreeBSD"
 | 
			
		||||
        osSudo "${BITCOIN_USER}" sh -c "cd \"${BITCOIN_HOME}/.cargo/registry/src/github.com-1ecc6299db9ec823/sysconf-0.3.4\" && patch -p1 < \"${MEMPOOL_HOME}/${MEMPOOL_REPO_NAME}/production/freebsd/sysconf.patch\""
 | 
			
		||||
        osSudo "${BITCOIN_USER}" sh -c "cd \"${BITCOIN_ELECTRS_HOME}/src/new_index/\" && sed -i.bak -e s/Snappy/None/ db.rs && rm db.rs.bak"
 | 
			
		||||
        osSudo "${BITCOIN_USER}" sh -c "cd \"${BITCOIN_ELECTRS_HOME}/src/bin/\" && sed -i.bak -e 's/from_secs(5)/from_secs(1)/' electrs.rs && rm electrs.rs.bak"
 | 
			
		||||
    ;;
 | 
			
		||||
    Debian)
 | 
			
		||||
    ;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
echo "[*] Building Bitcoin Electrs release binary"
 | 
			
		||||
osSudo "${BITCOIN_USER}" sh -c "cd ${BITCOIN_ELECTRS_HOME} && cargo run --release --bin electrs -- --version"
 | 
			
		||||
 | 
			
		||||
##################################
 | 
			
		||||
# Liquid -> Electrs installation #
 | 
			
		||||
##################################
 | 
			
		||||
 | 
			
		||||
if [ "${ELEMENTS_INSTALL}" = ON ;then
 | 
			
		||||
if [ "${ELEMENTS_ELECTRS_INSTALL}" = ON ];then
 | 
			
		||||
 | 
			
		||||
    echo "[*] Creating Liquid Electrs data folder"
 | 
			
		||||
    osSudo "${ROOT_USER}" mkdir -p "${ELEMENTS_ELECTRS_HOME}"
 | 
			
		||||
    osSudo "${ROOT_USER}" chown -R "${ELEMENTS_USER}:${ELEMENTS_GROUP}" "${ELEMENTS_HOME}"
 | 
			
		||||
    osSudo "${ROOT_USER}" chown -R "${ELEMENTS_USER}:${ELEMENTS_GROUP}" "${ELEMENTS_ELECTRS_HOME}"
 | 
			
		||||
    osSudo "${ROOT_USER}" chown -R "${ELEMENTS_USER}:${ELEMENTS_GROUP}" "${ELECTRS_LIQUID_DATA}"
 | 
			
		||||
    osSudo "${ROOT_USER}" chown -R "${ELEMENTS_USER}:${ELEMENTS_GROUP}" "${ELECTRS_LIQUIDTESTNET_DATA}"
 | 
			
		||||
    if [ "${ELEMENTS_LIQUID_ENABLE}" = ON ];then
 | 
			
		||||
        osSudo "${ROOT_USER}" chown -R "${ELEMENTS_USER}:${ELEMENTS_GROUP}" "${ELECTRS_LIQUID_DATA}"
 | 
			
		||||
    fi
 | 
			
		||||
    if [ "${ELEMENTS_LIQUIDTESTNET_ENABLE}" = ON ];then
 | 
			
		||||
        osSudo "${ROOT_USER}" chown -R "${ELEMENTS_USER}:${ELEMENTS_GROUP}" "${ELECTRS_LIQUIDTESTNET_DATA}"
 | 
			
		||||
    fi
 | 
			
		||||
    
 | 
			
		||||
    echo "[*] Cloning Liquid Electrs repo from ${ELEMENTS_ELECTRS_REPO_URL}"
 | 
			
		||||
    osSudo "${ELEMENTS_USER}" git config --global advice.detachedHead false
 | 
			
		||||
@ -1269,6 +1317,50 @@ if [ "${BISQ_INSTALL}" = ON ];then
 | 
			
		||||
    esac
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
#######################
 | 
			
		||||
# Unfurl installation #
 | 
			
		||||
#######################
 | 
			
		||||
 | 
			
		||||
if [ "${UNFURL_INSTALL}" = ON ];then
 | 
			
		||||
 | 
			
		||||
    echo "[*] Creating Unfurl user"
 | 
			
		||||
    osGroupCreate "${UNFURL_GROUP}"
 | 
			
		||||
    osUserCreate "${UNFURL_USER}" "${UNFURL_HOME}" "${UNFURL_GROUP}"
 | 
			
		||||
    osSudo "${ROOT_USER}" chsh -s `which zsh` "${UNFURL_USER}"
 | 
			
		||||
 | 
			
		||||
    echo "[*] Creating Unfurl folder"
 | 
			
		||||
    osSudo "${ROOT_USER}" mkdir -p "${UNFURL_HOME}"
 | 
			
		||||
    osSudo "${ROOT_USER}" chown -R "${UNFURL_USER}:${UNFURL_GROUP}" "${UNFURL_HOME}"
 | 
			
		||||
    osSudo "${UNFURL_USER}" touch "${UNFURL_HOME}/.zshrc"
 | 
			
		||||
 | 
			
		||||
    echo "[*] Insalling Unfurl source"
 | 
			
		||||
    case $OS in
 | 
			
		||||
 | 
			
		||||
        FreeBSD)
 | 
			
		||||
            echo "[*] FIXME: Unfurl must be installed manually on FreeBSD"
 | 
			
		||||
        ;;
 | 
			
		||||
 | 
			
		||||
        Debian)
 | 
			
		||||
            echo "[*] Installing packages for Unfurl"
 | 
			
		||||
            osPackageInstall ${DEBIAN_UNFURL_PKG[@]}
 | 
			
		||||
            echo "[*] Cloning Mempool (Unfurl) repo from ${UNFURL_REPO_URL}"
 | 
			
		||||
            osSudo "${UNFURL_USER}" git config --global pull.rebase true
 | 
			
		||||
            osSudo "${UNFURL_USER}" git config --global advice.detachedHead false
 | 
			
		||||
            osSudo "${UNFURL_USER}" git clone --branch "${UNFURL_REPO_BRANCH}" "${UNFURL_REPO_URL}" "${UNFURL_HOME}/${UNFURL_REPO_NAME}"
 | 
			
		||||
            osSudo "${UNFURL_USER}" ln -s unfurl/production/unfurl-build upgrade
 | 
			
		||||
            osSudo "${UNFURL_USER}" ln -s unfurl/production/unfurl-kill stop
 | 
			
		||||
            osSudo "${UNFURL_USER}" ln -s unfurl/production/unfurl-start start
 | 
			
		||||
            echo "[*] Installing nvm.sh from GitHub"
 | 
			
		||||
            osSudo "${UNFURL_USER}" sh -c 'curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | zsh'
 | 
			
		||||
 | 
			
		||||
            echo "[*] Building NodeJS via nvm.sh"
 | 
			
		||||
            osSudo "${UNFURL_USER}" zsh -c 'source ~/.zshrc ; nvm install v16.16.0 --shared-zlib'
 | 
			
		||||
 | 
			
		||||
        ;;
 | 
			
		||||
    esac
 | 
			
		||||
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
################################
 | 
			
		||||
# Bitcoin instance for Mainnet #
 | 
			
		||||
################################
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										13
									
								
								production/mempool-config.unfurl.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								production/mempool-config.unfurl.json
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,13 @@
 | 
			
		||||
{
 | 
			
		||||
  "SERVER": {
 | 
			
		||||
    "HOST": "https://mempool.space",
 | 
			
		||||
    "HTTP_PORT": 8001
 | 
			
		||||
  },
 | 
			
		||||
  "MEMPOOL": {
 | 
			
		||||
    "HTTP_HOST": "https://mempool.space",
 | 
			
		||||
    "HTTP_PORT": 443
 | 
			
		||||
  },
 | 
			
		||||
  "PUPPETEER": {
 | 
			
		||||
    "CLUSTER_SIZE": 8
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										62
									
								
								production/unfurl-build
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										62
									
								
								production/unfurl-build
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,62 @@
 | 
			
		||||
#!/usr/bin/env zsh
 | 
			
		||||
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:$HOME/bin
 | 
			
		||||
HOSTNAME=$(hostname)
 | 
			
		||||
LOCATION=$(hostname|cut -d . -f2)
 | 
			
		||||
LOCKFILE="${HOME}/lock"
 | 
			
		||||
REF=$(echo "${1:=origin/master}"|sed -e 's!:!/!')
 | 
			
		||||
 | 
			
		||||
if [ -f "${LOCKFILE}" ];then
 | 
			
		||||
    echo "upgrade already running? check lockfile ${LOCKFILE}"
 | 
			
		||||
    exit 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# on exit, remove lockfile but preserve exit code
 | 
			
		||||
trap "rv=\$?; rm -f "${LOCKFILE}"; exit \$rv" INT TERM EXIT
 | 
			
		||||
 | 
			
		||||
# create lockfile
 | 
			
		||||
touch "${LOCKFILE}"
 | 
			
		||||
 | 
			
		||||
# notify logged in users
 | 
			
		||||
echo "Upgrading unfurler to ${REF}" | wall
 | 
			
		||||
 | 
			
		||||
update_repo()
 | 
			
		||||
{
 | 
			
		||||
    echo "[*] Upgrading unfurler to ${REF}"
 | 
			
		||||
    cd "$HOME/unfurl/unfurler" || exit 1
 | 
			
		||||
 | 
			
		||||
    git fetch origin || exit 1
 | 
			
		||||
    for remote in origin;do
 | 
			
		||||
        git remote add "${remote}" "https://github.com/${remote}/mempool" >/dev/null 2>&1
 | 
			
		||||
        git fetch "${remote}" || exit 1
 | 
			
		||||
    done
 | 
			
		||||
 | 
			
		||||
    if [ $(git tag -l "${REF}") ];then
 | 
			
		||||
        git reset --hard "tags/${REF}" || exit 1
 | 
			
		||||
    elif [ $(git branch -r -l "origin/${REF}") ];then
 | 
			
		||||
        git reset --hard "origin/${REF}" || exit 1
 | 
			
		||||
    else
 | 
			
		||||
        git reset --hard "${REF}" || exit 1
 | 
			
		||||
    fi
 | 
			
		||||
    export HASH=$(git rev-parse HEAD)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
build_backend()
 | 
			
		||||
{
 | 
			
		||||
    echo "[*] Building backend for unfurler"
 | 
			
		||||
    [ -z "${HASH}" ] && exit 1
 | 
			
		||||
    cd "$HOME/unfurl/unfurler" || exit 1
 | 
			
		||||
    if [ ! -e "config.json" ];then
 | 
			
		||||
        cp "${HOME}/unfurl/production/mempool-config.unfurl.json" "config.json"
 | 
			
		||||
    fi
 | 
			
		||||
    npm install || exit 1
 | 
			
		||||
    npm run build || exit 1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
update_repo
 | 
			
		||||
build_backend
 | 
			
		||||
 | 
			
		||||
# notify everyone
 | 
			
		||||
echo "${HOSTNAME} unfurl updated to \`${REF}\` @ \`${HASH}\`" | /usr/local/bin/keybase chat send --nonblock --channel general mempool.dev
 | 
			
		||||
echo "${HOSTNAME} unfurl updated to \`${REF}\` @ \`${HASH}\`" | /usr/local/bin/keybase chat send --nonblock --channel general "mempool.ops.${LOCATION}"
 | 
			
		||||
 | 
			
		||||
exit 0
 | 
			
		||||
							
								
								
									
										2
									
								
								production/unfurl-kill
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										2
									
								
								production/unfurl-kill
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,2 @@
 | 
			
		||||
#!/usr/bin/env zsh
 | 
			
		||||
killall sh node
 | 
			
		||||
							
								
								
									
										6
									
								
								production/unfurl-start
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										6
									
								
								production/unfurl-start
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,6 @@
 | 
			
		||||
#!/usr/bin/env zsh
 | 
			
		||||
export NVM_DIR="$HOME/.nvm"
 | 
			
		||||
source "$NVM_DIR/nvm.sh"
 | 
			
		||||
 | 
			
		||||
cd "${HOME}/unfurl/unfurler/" && \
 | 
			
		||||
screen -dmS "unfurl" sh -c 'while true;do npm run start-production;sleep 1;done'
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user