1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-12-27 08:38:07 +00:00
trezor-firmware/core/trezor_cmd.sh

79 lines
2.2 KiB
Bash

#!/bin/bash
# expected inputs:
# TREZOR_SRC -- directory containing python code for uMP
if [[ ! "${TREZOR_SRC}" ]]; then echo "expecting TREZOR_SRC"; exit 0; fi
# optional inputs:
# TREZOR_PROFILE -- profile name (directory) in ~/.trezoremu or full path
# PROFILING -- wrap the uMP/python in the profiler script
# outputs:
## uMP
# PYOPT
# HEAPSIZE
# ARGS -- uMP arguments
# MAIN -- uMP file to execute
## TREZOR core
# TREZOR_PROFILE_DIR
# TREZOR_PROFILE_NAME
# TREZOR_UDP_PORT
## this script
# TREZOR_SRC
# TREZOR_LOGFILE
## python-trezor
# TREZOR_PATH -- connect string
# defaults
PYOPT="${PYOPT:-1}"
HEAPSIZE="${HEAPSIZE:-20M}"
TREZOR_PROFILE="${TREZOR_PROFILE:-/var/tmp}"
TREZOR_PROFILE_DIR="${TREZOR_PROFILE}"
TREZOR_PROFILE_NAME="${TREZOR_PROFILE}"
# for profile names create profile directory if not existent
if ! [[ "$TREZOR_PROFILE" == "/"* ]]; then
TREZOR_PROFILE_DIR="${HOME}/.trezoremu/${TREZOR_PROFILE}"
if ! [[ -d "${TREZOR_PROFILE_DIR}" ]]; then
mkdir -p "${TREZOR_PROFILE_DIR}"
PORT=$(( ( RANDOM % 1000 ) + 1 + 21324 ))
echo "# autogenerated config" > "${TREZOR_PROFILE_DIR}/emu.config"
echo "TREZOR_UDP_PORT=\"\${TREZOR_UDP_PORT:-${PORT}}\"" >> "${TREZOR_PROFILE_DIR}/emu.config"
fi
fi
# load profile config
if [[ -f "${TREZOR_PROFILE_DIR}/emu.config" ]]; then
source "${TREZOR_PROFILE_DIR}/emu.config"
fi
# for profiling wrap
if [[ "$PROFILING" -gt 0 ]]; then
MAIN="${TREZOR_SRC}/../prof/prof.py"
else
MAIN="${TREZOR_SRC}/main.py"
fi
TREZOR_LOGFILE="${TREZOR_PROFILE_DIR}/trezor.log"
TREZOR_UDP_PORT="${TREZOR_UDP_PORT:-21324}"
TREZOR_PATH="${TREZOR_PATH:-udp:127.0.0.1:${TREZOR_UDP_PORT}}"
echo "TREZOR^emu profile name: ${TREZOR_PROFILE_NAME}"
echo "TREZOR^emu profile directory: ${TREZOR_PROFILE_DIR}"
echo "TREZOR^emu log file: ${TREZOR_LOGFILE}"
echo "TREZOR^emu UDP port: ${TREZOR_UDP_PORT}"
echo "TREZOR^emu path: ${TREZOR_PATH}"
echo "TREZOR^emu src: ${TREZOR_SRC}"
export TREZOR_PROFILE_NAME="${TREZOR_PROFILE_NAME}"
export TREZOR_PROFILE_DIR="${TREZOR_PROFILE_DIR}"
export TREZOR_LOGFILE="${TREZOR_LOGFILE}"
export TREZOR_UDP_PORT="${TREZOR_UDP_PORT}"
export TREZOR_PATH="${TREZOR_PATH}"
export TREZOR_SRC="${TREZOR_SRC}"
ARGS="-O${PYOPT} -X heapsize=${HEAPSIZE}"