Skip to content

Commit

Permalink
Merge pull request blockscout#21 from crypto-org-chain/feature/cronos…
Browse files Browse the repository at this point in the history
…/add_prepend_path_script

Fix subpath issue when explorer behind reverse proxy
  • Loading branch information
mofhusseini committed Aug 31, 2021
2 parents b421cf9 + 146d95e commit 5d83a94
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 0 deletions.
9 changes: 9 additions & 0 deletions docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,14 @@ RUN apk --no-cache --update add alpine-sdk gmp-dev automake libtool inotify-tool
# Get Rust
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y

ARG NETWORK_PATH=""
ARG SOCKET_ROOT=""

ENV PATH="$HOME/.cargo/bin:${PATH}"
ENV RUSTFLAGS="-C target-feature=-crt-static"
ENV MIX_ENV="prod"
ENV SOCKET_ROOT=${SOCKET_ROOT}
ENV NETWORK_PATH=${NETWORK_PATH}

# Cache elixir deps
ADD mix.exs mix.lock ./
Expand All @@ -16,11 +21,14 @@ ADD apps/explorer/mix.exs ./apps/explorer/
ADD apps/ethereum_jsonrpc/mix.exs ./apps/ethereum_jsonrpc/
ADD apps/indexer/mix.exs ./apps/indexer/
ADD docker/entrypoint.sh ./
ADD docker/prepend_npath.sh ./

RUN mix do deps.get, local.rebar --force, deps.compile

ADD . .

RUN ./prepend_npath.sh

# Run forderground build and phoenix digest
RUN mix compile

Expand All @@ -38,3 +46,4 @@ RUN cd apps/explorer/ && \
RUN cd apps/block_scout_web/ && \
mix phx.digest

ENTRYPOINT [ "./entrypoint.sh" ]
35 changes: 35 additions & 0 deletions docker/prepend_npath.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#!/bin/bash

set -e

cd /opt/app



# Find and replace code to add NETWORK_PATH
# NETWORK_PATH must not have / at the end
if [[ -z "$NETWORK_PATH" ]]; then
echo "NETWORK_PATH env variable is not set. Will not prepend anything"
else
echo "Prepending $NETWORK_PATH"

# Prepend Network Path to layout.js
sed -i 's/window.location.href = `\/search?q=${value}`/window.location.href = "\'$NETWORK_PATH'" + `\/search?q=${value}`/g' apps/block_scout_web/assets/js/pages/layout.js

# Prepend Network Path to autocomplete.js
sed -i 's/`\/token-autocomplete?q=${query}`/`\'"$NETWORK_PATH"'\/token-autocomplete?q=${query}`/g' apps/block_scout_web/assets/js/lib/autocomplete.js
sed -i 's/window.location = `\/tokens\/${selectionValue.address_hash}`/window.location = "\'$NETWORK_PATH'" + `\/tokens\/${selectionValue.address_hash}`/g' apps/block_scout_web/assets/js/lib/autocomplete.js
sed -i 's/window.location = `\/address\/${selectionValue.address_hash}`/window.location = "\'$NETWORK_PATH'" + `\/address\/${selectionValue.address_hash}`/g' apps/block_scout_web/assets/js/lib/autocomplete.js
sed -i 's/window.location = `\/tx\/${selectionValue.tx_hash}`/window.location = "\'$NETWORK_PATH'" + `\/tx\/${selectionValue.tx_hash}`/g' apps/block_scout_web/assets/js/lib/autocomplete.js
sed -i 's/window.location = `\/blocks\/${selectionValue.block_hash}`/window.location = "\'$NETWORK_PATH'" + `\/blocks\/${selectionValue.block_hash}`/g' apps/block_scout_web/assets/js/lib/autocomplete.js

# Prepend Network Path to footer
sed -i 's/<a href="\/" rel="noreferrer" class="footer-link">/<a href="\'"$NETWORK_PATH"'\/" rel="noreferrer" class="footer-link">/g' apps/block_scout_web/lib/block_scout_web/templates/layout/_footer.html.eex
sed -i 's/<a href="\/blocks" rel="noreferrer" class="footer-link">/<a href="\'"$NETWORK_PATH"'\/blocks" rel="noreferrer" class="footer-link">/g' apps/block_scout_web/lib/block_scout_web/templates/layout/_footer.html.eex
sed -i 's/<a href="\/txs" rel="noreferrer" class="footer-link">/<a href="\'"$NETWORK_PATH"'\/txs" rel="noreferrer" class="footer-link">/g' apps/block_scout_web/lib/block_scout_web/templates/layout/_footer.html.eex
sed -i 's/<a href="\/accounts" rel="noreferrer" class="footer-link">/<a href="\'"$NETWORK_PATH"'\/accounts" rel="noreferrer" class="footer-link">/g' apps/block_scout_web/lib/block_scout_web/templates/layout/_footer.html.eex
sed -i 's/<a href="\/tokens" rel="noreferrer" class="footer-link">/<a href="\'"$NETWORK_PATH"'\/tokens" rel="noreferrer" class="footer-link">/g' apps/block_scout_web/lib/block_scout_web/templates/layout/_footer.html.eex

# Prepend Network Path to graphiql
sed -i 's/to: api_url() <> "\/graphiql"/to: api_url() <> "\'$NETWORK_PATH'" <> "\/graphiql"/g' apps/block_scout_web/lib/block_scout_web/templates/layout/_topnav.html.eex
fi

0 comments on commit 5d83a94

Please sign in to comment.