1. #!/bin/bash
    
  2. 
    
  3. set -eo pipefail
    
  4. 
    
  5. if [ -z "${HERMIT_STATE_DIR}" ]; then
    
  6.   case "$(uname -s)" in
    
  7.   Darwin)
    
  8.     export HERMIT_STATE_DIR="${HOME}/Library/Caches/hermit"
    
  9.     ;;
    
  10.   Linux)
    
  11.     export HERMIT_STATE_DIR="${XDG_CACHE_HOME:-${HOME}/.cache}/hermit"
    
  12.     ;;
    
  13.   esac
    
  14. fi
    
  15. 
    
  16. export HERMIT_DIST_URL="${HERMIT_DIST_URL:-https://github.com/cashapp/hermit/releases/download/stable}"
    
  17. HERMIT_CHANNEL="$(basename "${HERMIT_DIST_URL}")"
    
  18. export HERMIT_CHANNEL
    
  19. export HERMIT_EXE=${HERMIT_EXE:-${HERMIT_STATE_DIR}/pkg/hermit@${HERMIT_CHANNEL}/hermit}
    
  20. 
    
  21. if [ ! -x "${HERMIT_EXE}" ]; then
    
  22.   echo "Bootstrapping ${HERMIT_EXE} from ${HERMIT_DIST_URL}" 1>&2
    
  23.   curl -fsSL "${HERMIT_DIST_URL}/install.sh" | /bin/bash 1>&2
    
  24. fi
    
  25. 
    
  26. exec "${HERMIT_EXE}" --level=fatal exec "$0" -- "$@"