-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsetup.sh
More file actions
executable file
·60 lines (45 loc) · 1.64 KB
/
Copy pathsetup.sh
File metadata and controls
executable file
·60 lines (45 loc) · 1.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/usr/bin/env bash
set -e
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
cd "$DIR"
VENV_DIR="${HOME}/.local/share/mn_venv"
BIN_DIR="${HOME}/.local/bin"
PYTHON_BIN="${MN_PYTHON:-python3.11}"
FORCE_REINSTALL=false
for arg in "$@"; do
if [ "$arg" == "--reinstall" ]; then
FORCE_REINSTALL=true
fi
done
echo "=> Checking dependencies and environment..."
echo "=> Fetching Elixir dependencies..."
mix deps.get
mix compile
if [ "$FORCE_REINSTALL" = true ] && [ -d "$VENV_DIR" ]; then
echo "=> Force reinstall requested. Removing old venv..."
rm -rf "$VENV_DIR"
fi
if [ ! -d "$VENV_DIR" ]; then
echo "=> Creating Python virtual environment in $VENV_DIR..."
"$PYTHON_BIN" -m venv "$VENV_DIR"
fi
echo "=> Installing Python packages (SDK, CLI, API)..."
"$VENV_DIR/bin/pip" install --upgrade pip
echo "=> Installing mn-python-sdk from local folder..."
"$VENV_DIR/bin/pip" install -e ../mn-python-sdk
echo "=> Installing mn-cli from local folder..."
"$VENV_DIR/bin/pip" install -e ../mn-cli
echo "=> Installing mn-api from local folder..."
"$VENV_DIR/bin/pip" install -e ../mn-api
echo "=> Setting up mn CLI in $BIN_DIR..."
mkdir -p "$BIN_DIR"
rm -f "$BIN_DIR/mn" "$BIN_DIR/mn-api"
if [ -f "$VENV_DIR/bin/mn" ]; then ln -s "$VENV_DIR/bin/mn" "$BIN_DIR/mn"; fi
if [ -f "$VENV_DIR/bin/mn-api" ]; then ln -s "$VENV_DIR/bin/mn-api" "$BIN_DIR/mn-api"; fi
SHELL_RC="$HOME/.bashrc"
if [[ "$SHELL" == *"zsh"* ]]; then SHELL_RC="$HOME/.zshrc"; fi
if ! grep -q "$BIN_DIR" "$SHELL_RC" 2>/dev/null; then
echo -e "\nexport PATH=\"\$PATH:$BIN_DIR\"" >> "$SHELL_RC"
echo "=> Added $BIN_DIR to $SHELL_RC"
fi
echo "=> Environment setup complete."