diff -r 000000000000 -r 67e1cc6cd929 pages/StackSelect.nsi --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pages/StackSelect.nsi Wed May 27 01:05:23 2009 -0400 @@ -0,0 +1,83 @@ +Page custom StackSelectCreate StackSelectLeave " - Select stack" + +Function StackSelectCreate + ; Only show this page if both WAMPStack and WAPPStack are installed. + StrCmp $wampstack_installed 0 "" +3 + Call StackSelectLeave + Return + StrCmp $wappstack_installed 0 "" +3 + Call StackSelectLeave + Return + StrCmp $XPUI_ABORTED 1 "" +2 + Abort + + !insertmacro XPUI_INSTALLOPTIONS_EXTRACT_AS "pages\StackSelect.ini" "StackSelect.ini" + !insertmacro XPUI_HEADER_TEXT "Select server stack" "Choose which BitNami stack installation you want to use to run $(^Name)." + !insertmacro XPUI_INSTALLOPTIONS_DISPLAY "StackSelect.ini" +FunctionEnd + +Function StackSelectLeave + ; Here is where we make the final decision on which stack will be used. + IfFileExists "$PLUGINSDIR\StackSelect.ini" "" OnlyOneStackInstalled + + !macro ConfigCheck + IfFileExists "$stack_instdir\apps\${PRODUCT_SHORTNAME}\htdocs\config.php" 0 +3 + MessageBox MB_YESNO|MB_ICONQUESTION|MB_DEFBUTTON2 "Setup has found that $(^Name) is already installed on this stack. If you continue, the existing installation's configuration file will be deleted and your existing website will be replaced with a fresh one.$\n$\nDo you want to delete your existing $(^Name) website?" IDYES +2 + Abort + !macroend + + ; Both stacks are installed; decide based on user selection + ReadINIStr $0 "$PLUGINSDIR\StackSelect.ini" "Field 1" "State" + StrCmp $0 1 "" UserSelectedWAPP + ; User selected WAMP + Call BNSetVarsForWAMP + !insertmacro ConfigCheck + Return + + UserSelectedWAPP: + ; User selected WAPP + Call BNSetVarsForWAPP + !insertmacro ConfigCheck + Return + + OnlyOneStackInstalled: + StrCmp $wampstack_installed 0 +3 + ; MySQL + Call BNSetVarsForWAMP + !insertmacro ConfigCheck + Return + + ; PostgreSQL + Call BNSetVarsForWAPP + !insertmacro ConfigCheck + Return +FunctionEnd + +Function BNSetVarsForWAMP + StrCpy $stack_type "WAMP" + StrCpy $stack_instdir "$wampstack_installed" + StrCpy $db_driver "mysql" + StrCpy $db_dbmsname "MySQL" + StrCpy $db_rootuser "root" + ReadINIStr $db_port "$stack_instdir\properties.ini" "MySQL" "mysql_port" + + StrCpy $stack_portbit "" + ReadINIStr $0 "$stack_instdir\properties.ini" "Apache" "apache_server_port" + StrCmp $0 "80" +2 + StrCpy $stack_portbit ":$0" +FunctionEnd + +Function BNSetVarsForWAPP + StrCpy $stack_type "WAPP" + StrCpy $stack_instdir "$wappstack_installed" + StrCpy $db_driver "postgresql" + StrCpy $db_dbmsname "PostgreSQL" + StrCpy $db_rootuser "postgres" + ; NOTE: WAPPStack doesn't record the port of PostgreSQL - we have to assume the default + StrCpy $db_port 5432 + + StrCpy $stack_portbit "" + ReadINIStr $0 "$stack_instdir\properties.ini" "Apache" "apache_server_port" + StrCmp $0 "80" +2 + StrCpy $stack_portbit ":$0" +FunctionEnd \ No newline at end of file