You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
197 lines
11 KiB
197 lines
11 KiB
; Copyright 2008-2011 Michael |
|
; This program is free software: you can redistribute it and/or modify |
|
; it under the terms of the GNU Affero General Public License as published by |
|
; the Free Software Foundation, version 3 of the License. |
|
; |
|
; This program is distributed in the hope that it will be useful, |
|
; but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
; GNU General Public License for more details. |
|
; |
|
; You should have received a copy of the GNU Affero General Public License |
|
; along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
; In the "official" distribution you can find the license in agpl-3.0.txt. |
|
|
|
|
|
;"%programfiles%\MySQL\MySQL Server 5.0\bin\mysqld" --remove |
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
; Includes |
|
#include <GUIConstantsEx.au3> |
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
; Variables |
|
Dim $rootPwd = "" |
|
Dim $fpdbUserPwd = "" |
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
; Welcome message and option to abort. Change of working dir to \fpdbEnv |
|
Dim $welcomeBox = MsgBox(4100, "fpdb environment installation", "This installer will automatically create the environment which is needed to run fpdb." & @CRLF & @CRLF & _ |
|
"This means installing and configuring MySQL and Python including some special modules," & @CRLF & "creating a directory for your fpdb user profile and adding gtk to your path." & @CRLF & @CRLF & _ |
|
"You are advised to close all aplications before you proceed." & @CRLF & @CRLF & _ |
|
"DON'T use the keyboard or the mouse during installation unless you are asked to! Just WAIT until the message box 'End of Installation' pops up!" & @CRLF & @CRLF & _ |
|
"If you want to continue the installation click 'Yes'." & @CRLF & "If you want to abort the installation click 'No'.") |
|
If $welcomeBox == 7 Then |
|
Exit ;Exit Installation if 'No' button is clicked in message box |
|
EndIf |
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
; Ask user for mysql root password |
|
GUICreate("FPDB Environment Installation", 600, 400) |
|
GUICtrlCreateLabel("For the installation of the FPDB Environment the MySQL root password and your poker database password are needed.", 20, 25) |
|
GUICtrlCreateLabel("In case MySQL and/or your fpdb poker database aren't installed on your computer, just pick a password.", 20, 50) |
|
GUICtrlCreateLabel("MySQL Root Password:", 20, 100) |
|
$rootPw = GUICtrlCreateInput("your password here", 150, 100, 100, 20) |
|
GUICtrlCreateLabel("Retype password:", 290, 100) |
|
$rootPwR = GUICtrlCreateInput("", 420, 100, 100, 20) |
|
GUICtrlCreateLabel("Poker DB User Password:", 20, 150) |
|
$userPw = GUICtrlCreateInput("your password here", 150, 150, 100, 20) |
|
GUICtrlCreateLabel("Retype password:", 290, 150) |
|
$userPwR = GUICtrlCreateInput("", 420, 150, 100, 20) |
|
$okbutton = GUICtrlCreateButton("OK", 270, 200, 60, 20) |
|
$status = GUICtrlCreateLabel("This is the status line. It describes what the installer is doing at the moment.", 20, 250, 560) |
|
GUISetState(@SW_SHOW) |
|
While 1 |
|
$msg = GUIGetMsg() |
|
Select |
|
Case $msg = $okbutton |
|
If Not(GUICtrlRead($rootPw) == GUICtrlRead($rootPwR)) OR GUICtrlRead($rootPw) == "" Then |
|
MsgBox(16, "", "The passwords don't macht! Try again!", 20, 250) |
|
ElseIf Not(GUICtrlRead($userPw) == GUICtrlRead($userPwR)) OR GUICtrlRead($userPw) == "" Then |
|
MsgBox(16, "", "The passwords don't macht! Try again!", 20, 250) |
|
Else |
|
$rootPwd = GUICtrlRead($rootPw) |
|
$fpdbUserPwd = GUICtrlRead($userPw) |
|
GUICtrlSetState($okbutton, $GUI_DISABLE) |
|
ExitLoop |
|
EndIf |
|
EndSelect |
|
WEnd |
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
; Files Needed |
|
FileInstall("fpdb\7za.exe", "7za.exe") |
|
FileInstall("fpdb\MySQL Server 5.0.7z", "MySQL Server 5.0.7z") |
|
FileInstall("fpdb\gtk.7z", "gtk.7z") |
|
FileInstall("fpdb\python-2.5.2.msi", "python-2.5.2.msi") |
|
FileInstall("fpdb\pymysql.7z", "pymysql.7z") |
|
FileInstall("fpdb\pycairo.7z", "pycairo.7z") |
|
FileInstall("fpdb\pygobject.7z", "pygobject.7z") |
|
FileInstall("fpdb\pygtk.7z", "pygtk.7z") |
|
FileInstall("fpdb\psykopg2.7z", "psykopg2.7z") |
|
FileInstall("fpdb\pywin32.7z", "pywin32.7z") |
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
; MySQL Install and configuration |
|
If NOT FileExists(EnvGet("programfiles") & "\MySQL\MySQL Server 5.0\bin\mysql.exe") Then |
|
GUICtrlSetData($status, "Installing MySQL Database Management System and creating MySQL windows service.") |
|
RunWait('7za.exe x "MySQL Server 5.0.7z" -o"' & EnvGet("programfiles") & '\MySQL\" -aoa', "", @SW_HIDE) |
|
RunWait('"' & EnvGet("programfiles") & '\MySQL\MySQL Server 5.0\bin\mysqld" --install', "", @SW_HIDE) |
|
RunWait("net start mysql", "", @SW_HIDE) |
|
ProcessWait("mysqld.exe") |
|
GUICtrlSetData($status, "Securing important MySQL user accounts.") |
|
Sleep(5000) |
|
FileWrite(EnvGet("programfiles") & "\MySQL\MySQL Server 5.0\bin\mysql1.txt", "DELETE FROM mysql.user WHERE User = '';" & @CRLF) |
|
FileWrite(EnvGet("programfiles") & "\MySQL\MySQL Server 5.0\bin\mysql1.txt", "UPDATE mysql.user SET Password = PASSWORD('" & $rootPwd & "') WHERE User = 'root';" & @CRLF) |
|
FileWrite(EnvGet("programfiles") & "\MySQL\MySQL Server 5.0\bin\mysql1.txt", "FLUSH PRIVILEGES;" & @CRLF) |
|
RunWait(@ComSpec & ' /c mysql --user=root -e "source mysql1.txt"', EnvGet("programfiles") & '\MySQL\MySQL Server 5.0\bin\', @SW_HIDE) |
|
EndIf |
|
If NOT FileExists(EnvGet("programfiles") & "\MySQL\MySQL Server 5.0\data\fpdb") Then |
|
GUICtrlSetData($status, "Creating fpdb database.") |
|
FileWrite(EnvGet("programfiles") & "\MySQL\MySQL Server 5.0\bin\mysql2.txt", "create database fpdb;" & @CRLF) |
|
RunWait(@ComSpec & ' /c mysql --user=root --password=' & $rootPwd & ' -e "source mysql2.txt"', EnvGet("programfiles") & '\MySQL\MySQL Server 5.0\bin\', @SW_HIDE) |
|
EndIf |
|
GUICtrlSetData($status, "Creating MySQL user 'fpdb' and granting privileges.") |
|
FileWrite(EnvGet("programfiles") & "\MySQL\MySQL Server 5.0\bin\mysql3.txt", "GRANT ALL PRIVILEGES ON fpdb.* TO 'fpdb'@'localhost' IDENTIFIED BY '" & $fpdbUserPwd & "' WITH GRANT OPTION;" & @CRLF) |
|
RunWait(@ComSpec & ' /c mysql --user=root --password=' & $rootPwd & ' -e "source mysql3.txt"', EnvGet("programfiles") & '\MySQL\MySQL Server 5.0\bin\', @SW_HIDE) |
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
; GTK |
|
GUICtrlSetData($status, "Installing GTK.") |
|
RunWait('7za.exe x "gtk.7z" -oc:\ -aoa', "", @SW_HIDE) |
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
; Python 2.5 Installation |
|
GUICtrlSetData($status, "Installing Python 2.5.2") |
|
RunWait("msiexec /quiet /i python-2.5.2.msi", "", @SW_HIDE) ;Install Python without user interaction |
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
; pymysql |
|
GUICtrlSetData($status, "Installing pymysql") |
|
RunWait('7za.exe x "pymysql.7z" -oC:\Python25\Lib\site-packages -aoa', "", @SW_HIDE) |
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
; pycairo |
|
GUICtrlSetData($status, "Installing pycairo") |
|
RunWait('7za.exe x "pycairo.7z" -oC:\ -aoa', "", @SW_HIDE) |
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
; pygobject |
|
GUICtrlSetData($status, "Installing pygobject") |
|
RunWait('7za.exe x "pygobject.7z" -oC:\ -aoa', "", @SW_HIDE) |
|
RunWait(@ComSpec & ' /c C:\Python25\python.exe pygobject_postinstall.py -install', "C:\Python25\SCRIPTS", @SW_HIDE) |
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
; pygtk |
|
GUICtrlSetData($status, "Installing pygtk") |
|
RunWait('7za.exe x "pygtk.7z" -oC:\ -aoa', "", @SW_HIDE) |
|
RunWait(@ComSpec & ' /c C:\Python25\python.exe pygtk_postinstall.py -install', "C:\Python25\SCRIPTS", @SW_HIDE) |
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
; psykopg2 |
|
GUICtrlSetData($status, "Installing psykopg2") |
|
RunWait('7za.exe x "psykopg2.7z" -oC:\ -aoa', "", @SW_HIDE) |
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
; pywin32 |
|
GUICtrlSetData($status, "Installing pywin32 for Python 2.5") |
|
RunWait('7za.exe x "pywin32.7z" -oC:\ -aoa', "", @SW_HIDE) |
|
RunWait(@ComSpec & ' /c C:\Python25\python.exe pywin32_postinstall.py -install', "C:\Python25\SCRIPTS", @SW_HIDE) |
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
; Creating directory for default.conf and coping the file into it |
|
GUICtrlSetData($status, "Creating and installing default.conf file.") |
|
$file = FileOpen("default.conf", 1) |
|
FileWriteLine($file, "db-backend=2" & @CRLF) |
|
FileWriteLine($file, "db-host=localhost" & @CRLF) |
|
FileWriteLine($file, "db-databaseName=fpdb" & @CRLF) |
|
FileWriteLine($file, "db-user=fpdb" & @CRLF) |
|
FileWriteLine($file, "db-password=" & $fpdbUserPwd & @CRLF) |
|
FileWriteLine($file, "tv-combinedStealFold=True" & @CRLF) |
|
FileWriteLine($file, "tv-combined2B3B=True" & @CRLF) |
|
FileWriteLine($file, "tv-combinedPostflop=True" & @CRLF) |
|
FileWriteLine($file, "bulkImport-defaultPath=default" & @CRLF) |
|
FileWriteLine($file, "hud-defaultPath=default" & @CRLF) |
|
FileWriteLine($file, "imp-callFpdbHud=True" & @CRLF) |
|
FileClose($file) |
|
FileCopy("default.conf", EnvGet("appdata") & "\fpdb\", 9) |
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
; Registry |
|
GUICtrlSetData($status, "Creating backup of path variable and adding GTK and Python to path variable.") |
|
RegWrite("HKEY_CURRENT_USER\Environment", "PathBackup", "REG_SZ", RegRead("HKEY_CURRENT_USER\Environment", "path")) |
|
RegWrite("HKEY_CURRENT_USER\Environment", "path", "REG_SZ", RegRead("HKEY_CURRENT_USER\Environment", "path") & ';C:\gtk\bin;C:\Python25') |
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
; Delete installation files |
|
GUICtrlSetData($status, "Deleting temporary installation files.") |
|
FileDelete("7za.exe") |
|
FileDelete("MySQL Server 5.0.7z") |
|
FileDelete("gtk.7z") |
|
FileDelete("python-2.5.2.msi") |
|
FileDelete("pymysql.7z") |
|
FileDelete("pycairo.7z") |
|
FileDelete("pygobject.7z") |
|
FileDelete("pygtk.7z") |
|
FileDelete("psykopg2.7z") |
|
FileDelete("pywin32.7z") |
|
FileDelete("default.conf") |
|
|
|
$goodbyeBox = MsgBox(4100, "End of Installation", "The Computer needs to be restarted for the installation to be complete." & @CRLF & _ |
|
"After that you can start fpdb by double clicking the file fpdb.py which is located in the folder pyfpdb of the fpdb build you downloaded." & @CRLF & _ |
|
"If you haven't downloaded fpdb yet you can do it here: http://ovh.dl.sourceforge.net/sourceforge/fpdb/fpdb-alpha2-p68.zip" & @CRLF & @CRLF & _ |
|
"If you want to restart the computer now click 'Yes'." & @CRLF & _ |
|
"If you want to restart the computer later click 'No'.") |
|
If $goodbyeBox == 7 Then |
|
Exit ;Exit Installation if 'No' button is clicked in message box |
|
EndIf |
|
Run("shutdown.exe -r -t 0") |