3
3
# Setup script for UnityBotV4 on Linux
4
4
set -e
5
5
6
- read -p " Use .env file for configuration? (y/n): " use_env
6
+ # Ensure the script runs from its own directory
7
+ SCRIPT_DIR=" $( cd " $( dirname " ${BASH_SOURCE[0]} " ) " && pwd) "
8
+ cd " $SCRIPT_DIR "
9
+
10
+ read -r -p " Use .env file for configuration? (y/n): " use_env
7
11
8
12
if [[ " $use_env " =~ ^[Yy]$ ]]; then
9
13
TARGET=" env"
43
47
fi
44
48
45
49
# Verify Python version
46
- python3 - << 'PYTHON '
50
+ if ! python3 - << 'PYTHON '
47
51
import sys
48
52
sys.exit(0 if sys.version_info >= (3 , 8 ) else 1 )
49
53
PYTHON
50
- if [ $? -ne 0 ] ; then
54
+ then
51
55
echo " Python 3.8+ is required. Please install a supported version." >&2
52
56
exit 1
53
57
fi
56
60
if [ ! -d .venv ]; then
57
61
python3 -m venv .venv || { echo " Failed to create virtual environment" >&2 ; exit 1; }
58
62
fi
63
+ # shellcheck source=/dev/null
59
64
source .venv/bin/activate
60
65
61
66
prompt_var () {
62
67
local var_name=$1
63
- local env_val=$( printenv " $var_name " )
68
+ local env_val
69
+ env_val=$( printenv " $var_name " )
64
70
local file_val=" "
65
71
[[ -f .env ]] && file_val=$( grep -E " ^${var_name} =" .env | cut -d' =' -f2-)
66
72
67
73
if [[ " $TARGET " == " env" ]]; then
68
74
if [[ -n " $file_val " ]]; then
69
75
echo " $var_name already set in .env. Skipping prompt."
70
76
else
71
- read -p " Enter value for $var_name ${env_val: + [$env_val]} : " value
77
+ read -r - p " Enter value for $var_name ${env_val: + [$env_val]} : " value
72
78
value=${value:- $env_val }
73
79
[[ -f .env ]] && grep -v " ^$var_name =" .env > .env.tmp && mv .env.tmp .env
74
80
echo " $var_name =$value " >> .env
@@ -77,7 +83,7 @@ prompt_var() {
77
83
if [[ -n " $env_val " ]]; then
78
84
echo " $var_name already set. Skipping prompt."
79
85
else
80
- read -p " Enter value for $var_name : " value
86
+ read -r - p " Enter value for $var_name : " value
81
87
if grep -q " ^$var_name =" /etc/environment 2> /dev/null; then
82
88
sudo sed -i " s/^$var_name =.*/$var_name =\" ${value} \" /" /etc/environment
83
89
else
0 commit comments