-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinstall.cmd
126 lines (104 loc) · 3.87 KB
/
install.cmd
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
@ECHO OFF
SETLOCAL EnableExtensions EnableDelayedExpansion
REM The following lines are courtesy of Windows' magnificent support for shell programming:
REM https://superuser.com/a/1166728
for /f %%a in ('copy /Z "%~dpf0" nul') do set "CR=%%a"
for /f %%a in ('"prompt $H&for %%b in (0) do rem"') do set "BS=%%a"
REM Retrieve current code page, before changing it
for /f "usebackq tokens=4" %%i in (`chcp`) do (
set _PREV_CHCP=%%i
)
SET CONDA_PATH=%UserProfile%\Miniconda3
SET CONDA_ENV_NAME=aixd_ara
REM Switch code page, so that we can print extended ASCII
CHCP 65001 >nul
:select_rhino_version
set RHINO_VERSION=
set /p RHINO_VERSION="Select Rhino version (7 or 8) [7]:"
if not "%RHINO_VERSION%"=="" set RHINO_VERSION=%RHINO_VERSION:~0,1%
if "%RHINO_VERSION%"=="" set RHINO_VERSION=7
if "%RHINO_VERSION%"=="7" goto valid_rhino_version
if "%RHINO_VERSION%"=="8" goto valid_rhino_version
ECHO Invalid Rhino version, please choose either 7 or 8.
GOTO select_rhino_version
:valid_rhino_version
<nul set /p"=[√] Starting ARA installation..."
ECHO.
:check_conda_presence
<nul set /p"=[ ] Checking conda..."
WHERE conda >nul 2>&1
IF %ERRORLEVEL%==0 (
<nul set /p"=!BS!!CR![√] Conda command found!"
GOTO use_existing_conda
)
IF %ERRORLEVEL%==1 (
<nul set /p"=!BS!!CR![x] Conda not found, we will install Miniconda"
)
ECHO.
<nul set /p"=[ ] Installing miniconda (Python distribution)..."
CALL curl -S -s -O https://repo.anaconda.com/miniconda/Miniconda3-latest-Windows-x86_64.exe
IF %ERRORLEVEL% neq 0 GOTO miniconda_download_failed
SET CONDA_COMMAND=%CONDA_PATH%\condabin\conda
REM The last argument must NOT be quoted according to the conda docs, and that works even for paths with spaces in them
START /wait /min "Starting miniconda installation..." "Miniconda3-latest-Windows-x86_64.exe" /InstallationType=JustMe /S /D=%CONDA_PATH%
IF %ERRORLEVEL%==2 (
<nul set /p"=!BS!!CR![√] Miniconda seems to be already installed, will skip step and continue..."
ECHO.
GOTO compas_install
)
IF %ERRORLEVEL% neq 0 GOTO miniconda_install_failed
<nul set /p"=!BS!!CR![√] Installing miniconda (Python distribution)..."
ECHO.
:compas_install
<nul set /p"=[ ] Looking for virtual environment (%CONDA_ENV_NAME%)..."
CALL "%CONDA_COMMAND%" activate %CONDA_ENV_NAME% >nul 2>&1
IF %ERRORLEVEL%==0 (
<nul set /p"=!BS!!CR![√] Virtual environment already exists! (%CONDA_ENV_NAME%)"
ECHO.
GOTO compas_install_to_rhino
)
<nul set /p"=!BS!!CR![√] Virtual environment not found, will create it now... "
ECHO.
<nul set /p"=[ ] Creating virtual environment..."
CALL "%CONDA_COMMAND%" create -c conda-forge -n %CONDA_ENV_NAME% aixd aixd_ara compas flask python=3.9 -y >nul 2>&1
<nul set /p"=!BS!!CR![√] Created virtual environment '%CONDA_ENV_NAME%' successfully"
ECHO.
:conda_activate_virtual_env
<nul set /p"=[ ] Activating virtual environment..."
CALL "%CONDA_COMMAND%" activate %CONDA_ENV_NAME%
IF %ERRORLEVEL% neq 0 GOTO conda_activate_failed
<nul set /p"=!BS!!CR![√] Activated virtual environment successfully"
ECHO.
:compas_install_to_rhino
<nul set /p"=[√] Activating environment '%CONDA_ENV_NAME%' for Rhino..."
ECHO.
<nul set /p"=[√] Environment location: %CONDA_PREFIX%"
python -m compas_rhino.install -v %RHINO_VERSION%.0
<nul set /p"=[√] Successfully installed ARA on Rhino"
ECHO.
GOTO end_of_installer
:use_existing_conda
for /f "tokens=* delims=" %%a in ('where conda') do (
set "CONDA_COMMAND=%%a"
goto found_conda
)
:found_conda
ECHO.
GOTO compas_install
:conda_activate_failed
ECHO.
ECHO Could not activate virtual environment. Exiting.
GOTO end_of_installer
:miniconda_install_failed
ECHO.
ECHO Could not install miniconda. Exiting.
GOTO end_of_installer
:miniconda_download_failed
ECHO.
ECHO Could not download miniconda. Exiting.
GOTO end_of_installer
:end_of_installer
SET _ERRORLEVEL=%ERRORLEVEL%
CHCP %_PREV_CHCP% >nul
PAUSE
EXIT /B %_ERRORLEVEL%