update
This commit is contained in:
71
packaging/install.sh
Normal file
71
packaging/install.sh
Normal file
@@ -0,0 +1,71 @@
|
||||
#!/usr/bin/env sh
|
||||
set -eu
|
||||
|
||||
PYTHON_BIN="${PYTHON:-python3}"
|
||||
INSTALL_ROOT="${FLOW_INSTALL_ROOT:-$HOME/.local/share/flow}"
|
||||
BIN_DIR="${FLOW_BIN_DIR:-$HOME/.local/bin}"
|
||||
VENV_DIR="$INSTALL_ROOT/venv"
|
||||
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
|
||||
WHEELHOUSE="$SCRIPT_DIR/wheelhouse"
|
||||
|
||||
if ! command -v "$PYTHON_BIN" >/dev/null 2>&1; then
|
||||
echo "python3 is required. Set PYTHON=/path/to/python3 to override." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! "$PYTHON_BIN" -m venv --help >/dev/null 2>&1; then
|
||||
echo "python3 was built without the venv module. Install Python's venv package." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! "$PYTHON_BIN" -m pip --version >/dev/null 2>&1; then
|
||||
echo "python3 pip module is required. Install pip for the selected python." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -d "$WHEELHOUSE" ]; then
|
||||
echo "wheelhouse not found: $WHEELHOUSE" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
FLOW_WHEELS_COUNT=0
|
||||
FLOW_WHEEL=""
|
||||
for candidate in "$WHEELHOUSE"/flow-*.whl; do
|
||||
if [ -f "$candidate" ]; then
|
||||
FLOW_WHEELS_COUNT=$((FLOW_WHEELS_COUNT + 1))
|
||||
if [ -z "$FLOW_WHEEL" ]; then
|
||||
FLOW_WHEEL="$candidate"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "$FLOW_WHEELS_COUNT" -eq 0 ]; then
|
||||
echo "flow wheel not found in $WHEELHOUSE" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$FLOW_WHEELS_COUNT" -gt 1 ]; then
|
||||
echo "multiple flow wheels found in $WHEELHOUSE. Ensure exactly one release wheel is present." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mkdir -p "$INSTALL_ROOT"
|
||||
"$PYTHON_BIN" -m venv "$VENV_DIR"
|
||||
|
||||
if ! "$VENV_DIR/bin/python" -m pip --version >/dev/null 2>&1; then
|
||||
echo "Created venv does not expose pip. Ensure Python's ensurepip is available." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
"$VENV_DIR/bin/python" -m pip install --no-cache-dir --upgrade "$FLOW_WHEEL"
|
||||
|
||||
mkdir -p "$BIN_DIR"
|
||||
cat > "$BIN_DIR/flow" <<EOF
|
||||
#!/usr/bin/env sh
|
||||
exec "$VENV_DIR/bin/flow" "\$@"
|
||||
EOF
|
||||
chmod 755 "$BIN_DIR/flow"
|
||||
|
||||
echo "Installed flow to $BIN_DIR/flow"
|
||||
echo "Run: $BIN_DIR/flow --version"
|
||||
Reference in New Issue
Block a user