install_requirements_windows.bat
4.49 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
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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
@echo off
SET PYTHON=python
SET VENV_NAME=venv_py35_pyros
SET USERNAME=root
SET DB_USER=pyros
SET DB_PASSWORD=DjangoPyros
SET MYSQL=0
SET PORT=8000
REM String variables
SET ASK_USE_MYSQL=-Do you wish to use mysql in your project ? Only if mysql-server is installed. (Y/N)
SET ASK_MYSQL_USERNAME=-MySQL server login (default 'root'):
SET SQL_SCRIPT=CREATE DATABASE IF NOT EXISTS pyros; DROP USER IF EXISTS '%DB_USER%'; GRANT ALL ON pyros.* TO '%DB_USER%'@'localhost' IDENTIFIED BY '%DB_PASSWORD%'; GRANT ALL ON test_pyros.* TO '%DB_USER%'@'localhost'
SET SQL_FAIL=-Failed to execute database script, probably due to a wrong username or password
SET TELL_MYSQL_CREATIONS=-Created pyros database. -Created new user '%DB_USER%' with password '%DB_PASSWORD%'
SET USE_SQLITE=-Sqlite will be used by default. There is no required configuration.
SET PRIVATE_DIR_CREATE=-Created 'private' directory
SET PYTHON_NOT_INSTALLED=-Cannot find %PYTHON%, please install it or configure PYTHON variable in this script
SET PYTHON_FOUND=-Found %PYTHON% at
SET VENV_CREATE=-Creating virtualenv %VENV_NAME%...
SET VENV_ACTIVATE=-Activating virtual environment...
SET VENV_FAIL=-Failed to activate virtualenv. Ask project administrators for further information
SET DONE=done.
SET UPGRADE_PIP=-Upgrading pip:
SET UPGRADE_WHEEL=-Upgrading wheel:
SET INSTALL_PACKAGES=-Installing required packages from install/REQUIREMENTS.txt
SET CREATE_DATABASE_CONTENT=-Creating database tables :
SET CREATE_SUPERUSER=-Creating database superuser :
SET CREATE_SUPERUSER_SCRIPT=from django.contrib.auth.models import User; User.objects.filter(username='%DB_USER%').delete(); User.objects.create_superuser('%DB_USER%', 'admin@example.com', '%DB_PASSWORD%')
SET INSTALLATION_FINISHED=-Installation finished
SET BAD_SQL_CONFIGURATION=-Migration cannot be applied to the database : check your database configuration, or use sqlite instead
SET TELL_SUPERUSER_CREATION=-Superuser created for django admin interface. Login: %DB_USER% , password: %DB_PASSWORD%
SET LOAD_FIXTURES=-Loading fixtures ...
SET FINAL_MESSAGE=-Please run './pyrosrun server' then go to localhost:%PORT%/admin and log in with these id
REM Getting python location
where %PYTHON% > tmp.txt
IF %ERRORLEVEL% NEQ 0 (
ECHO %PYTHON_NOT_INSTALLED%
del tmp.txt
PAUSE
EXIT
)
SET /p PYTHON_DIR=<tmp.txt
del tmp.txt
ECHO %PYTHON_FOUND% %PYTHON_DIR%
REM Move into the .bat file directory (should be install/)
cd %~dp0%
REM Create a virtual env for Python3
cd ..
if not exist private mkdir private
echo %PRIVATE_DIR_CREATE%
cd private/
REM create a venv_py35_pyros/ folder inside PYROS/private/
echo %VENV_CREATE%
virtualenv %VENV_NAME% -p %PYTHON_DIR%
REM Activate the virtual env
echo %VENV_ACTIVATE%
CALL %VENV_NAME%/Scripts/activate
IF %ERRORLEVEL% NEQ 0 (
echo %VENV_FAIL%
pause
exit
)
echo Python location :
where python
REM Ask for using MySQL
SET /p ANSWER= "%ASK_USE_MYSQL%"
IF /I "%ANSWER%" == "y" (
SET /p ANSWER= "%ASK_MYSQL_USERNAME%"
IF "%ANSWER%" NEQ "" (
SET USERNAME=%ANSWER%
)
echo %SQL_SCRIPT% | mysql -u %USERNAME% -p
IF %ERRORLEVEL% NEQ 0 (
echo %SQL_FAIL%
pause
exit
)
echo %TELL_MYSQL_CREATIONS%
powershell -Command "(gc ../src/pyros/settings.py) -replace 'MYSQL = False', 'MYSQL = True' | Out-File -encoding UTF8 ../src/pyros/settings.py"
SET MYSQL=1
) ELSE (
powershell -Command "(gc ../src/pyros/settings.py) -replace 'MYSQL = True', 'MYSQL = False' | Out-File -encoding UTF8 ../src/pyros/settings.py"
echo %USE_SQLITE%
SET MYSQL=0
)
pause
REM Upgrade pip
echo %UPGRADE_PIP%
pip install --upgrade pip
REM Upgrade wheel
echo %UPGRADE_WHEEL%
pip install --upgrade wheel
REM Install specific to windows
FOR /D %%G in ("..\install\windows\*") DO xcopy /E /I %%G %VENV_NAME%\Lib\site-packages\%%~nxG
pip install ..\install\windows\lxml-3.6.0-cp35-cp35m-win32.whl
REM Install the needed python packages
echo %INSTALL_PACKAGES%
pip install -r ../install/REQUIREMENTS_WINDOWS.txt
IF %MYSQL% NEQ 0 (
pip install ..\install\windows\mysqlclient-1.3.7-cp35-cp35m-win32.whl
)
REM Create the database content and a superuser pyros
cd ../src/
echo %CREATE_DATABASE_CONTENT%
python manage.py makemigrations pyrosapp
python manage.py migrate
IF %ERRORLEVEL% NEQ 0 (
echo %BAD_SQL_CONFIGURATION%
pause
exit
)
echo %LOAD_FIXTURES%
python manage.py loaddata fixtures/initial_fixture.json
echo %CREATE_SUPERUSER%
echo %CREATE_SUPERUSER_SCRIPT% | python ../src/manage.py shell
echo %TELL_SUPERUSER_CREATION%
pause
echo %INSTALLATION_FINISHED%
pause
echo %FINAL_MESSAGE%
pause
EXIT