UNPKG

1.88 kBapplication/x-shView Raw
1#!/usr/bin/env bash
2set -e
3
4echoerr() { echo "$@" 1>&2; }
5
6export SFDX_INSTALLER="false" BIN_NAME="run"
7# @OVERRIDES@
8
9NODE_FLAGS=()
10
11# Process only cli flags that must be handled before invoking node
12for arg in "$@"; do
13 case "$arg" in
14 --dev-suspend) NODE_FLAGS+=("--inspect-brk");;
15 --dev-debug) DEV_DEBUG=true;;
16 esac
17done
18
19get_script_dir () {
20 SOURCE="${BASH_SOURCE[0]}"
21 # While $SOURCE is a symlink, resolve it
22 while [[ -h "$SOURCE" ]]; do
23 DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
24 SOURCE="$( readlink "$SOURCE" )"
25 # If $SOURCE was a relative symlink (so no "/" as prefix, need to resolve it relative to the symlink base directory
26 [[ "$SOURCE" != /* ]] && SOURCE="$DIR/$SOURCE"
27 done
28 DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
29 echo "$DIR"
30}
31
32DIR=$(get_script_dir)
33CLI_HOME=$(cd && pwd)
34XDG_DATA_HOME="${XDG_DATA_HOME:="$CLI_HOME/.local/share"}"
35BIN_DIR="$XDG_DATA_HOME/$BIN_NAME/client/bin"
36
37if [[ "$SFDX_REDIRECTED" != "1" && "${SFDX_INSTALLER:-}" == "true" && -x "$BIN_DIR/$BIN_NAME" && ! "$BIN_DIR" -ef "$DIR" ]]; then
38 if [[ "$DEV_DEBUG" == "true" ]]; then
39 echoerr "Executing:" "$XDG_DATA_HOME/$BIN_NAME/client/bin/$BIN_NAME" "$@"
40 fi
41 "$XDG_DATA_HOME/$BIN_NAME/client/bin/$BIN_NAME" "$@"
42else
43 MAIN_NAME="$BIN_NAME"
44 NODE_PATH="node"
45 if [[ "${SFDX_INSTALLER:-}" == "true" ]]; then
46 MAIN_NAME="$MAIN_NAME.js"
47 NODE_PATH="$DIR/$NODE_PATH"
48 elif [[ -x "$(command -v node)" ]]; then
49 NODE_PATH=node
50 else
51 echoerr 'Error: node is not installed.' >&2
52 exit 1
53 fi
54 if [[ "$DEV_DEBUG" == "true" ]]; then
55 echoerr "Executing:" "SFDX_BINPATH=$DIR/$BIN_NAME" "$NODE_PATH" "${NODE_FLAGS[@]}" "$DIR/$MAIN_NAME" "$@"
56 fi
57 SFDX_BINPATH="$DIR/$BIN_NAME" "$NODE_PATH" "${NODE_FLAGS[@]}" "$DIR/$MAIN_NAME" "$@"
58fi
59
\No newline at end of file