inst-resources/postgresql.nsh
changeset 0 67e1cc6cd929
equal deleted inserted replaced
-1:000000000000 0:67e1cc6cd929
       
     1 /**
       
     2  * Verify credentials for a PostgreSQL database. Assumes we are connecting to BitNami's DB.
       
     3  * @param string Username
       
     4  * @param string Password
       
     5  * @return int 0 if successful, >0 on error. Will push an error string to the stack if >0.
       
     6  */
       
     7 
       
     8 !macro postgresql_get_bin_dir
       
     9   StrCpy $R2 "$stack_instdir\postgresql\bin"
       
    10 !macroend
       
    11 
       
    12 Function postgresql_connect
       
    13   Pop $R1 ; Password
       
    14   Pop $R0 ; Username
       
    15 
       
    16   SetOutPath $PLUGINSDIR
       
    17   File "inst-resources\postgresqlutil.php"
       
    18   
       
    19   nsExec::ExecToLog '"$stack_instdir\php\php.exe" "$PLUGINSDIR\postgresqlutil.php" "$R0" "$R1"'
       
    20   Delete "$PLUGINSDIR\postgresqlutil.php"
       
    21   ; just be done; nsExec's result is on the top of the stack.
       
    22 FunctionEnd
       
    23 
       
    24 /**
       
    25  * Create a postgresql database and grant privileges on it to the given user.
       
    26  * @param string User to connect with
       
    27  * @param string Password to connect with
       
    28  * @param string Database name
       
    29  * @param string New user
       
    30  * @param string New user's password
       
    31  */
       
    32 
       
    33 Function postgresql_create_db
       
    34   Pop $R5 ; Password
       
    35   Pop $R4 ; User
       
    36   Pop $R3 ; Database
       
    37   Pop $R1 ; Password
       
    38   Pop $R0 ; Username
       
    39 
       
    40   /*
       
    41   ; This isn't a working feature in PostgreSQL.
       
    42   IfFileExists "$stack_instdir\postgresql\data\$R3" 0 DatabaseDoesNotExist
       
    43     MessageBox MB_YESNO|MB_ICONQUESTION|MB_DEFBUTTON2 "The database $\"$R3$\" already exists. Do you want to delete and recreate it?$\n$\nIf you choose No, Setup will not alter PostgreSQL's permissions, and you may need to set up permissions manually." IDYES +2
       
    44       Return
       
    45 
       
    46   DatabaseDoesNotExist:
       
    47   */
       
    48 
       
    49   SetOutPath $PLUGINSDIR
       
    50   File "inst-resources\postgresqlutil.php"
       
    51 
       
    52   nsExec::ExecToLog '"$stack_instdir\php\php.exe" "$PLUGINSDIR\postgresqlutil.php" "$R0" "$R1" \
       
    53                      "DROP DATABASE IF EXISTS $R3; \
       
    54                       DROP ROLE IF EXISTS $R4; \
       
    55                       CREATE ROLE $R4 WITH PASSWORD $\'$R5$\' LOGIN; \
       
    56                       CREATE DATABASE $R3 WITH OWNER $R4;"'
       
    57   Delete "$PLUGINSDIR\postgresqlutil.php"
       
    58 FunctionEnd
       
    59