aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbuild/package.php8
-rw-r--r--build/webpi/install/mssql.sql39
-rw-r--r--build/webpi/install/mysql.sql15
-rw-r--r--build/webpi/manifest.xml13
-rw-r--r--build/webpi/parameters.xml226
-rwxr-xr-xgit-tools/hooks/pre-commit9
6 files changed, 307 insertions, 3 deletions
diff --git a/build/package.php b/build/package.php
index 7cb30bd493..a0da6404c6 100755
--- a/build/package.php
+++ b/build/package.php
@@ -518,6 +518,14 @@ foreach ($compress_programs as $extension => $compress_command)
$package->run_command('md5sum ./release_files/' . $package->get('release_filename') . '.' . $extension . ' > ./release_files/' . $package->get('release_filename') . '.' . $extension . '.md5');
}
+// Microsoft Web PI packaging
+$package->begin_status('Packaging phpBB for Microsoft WebPI');
+$file = './release_files/' . $package->get('release_filename') . '.webpi.zip';
+$package->run_command("rm -v $file");
+$package->run_command('cp -p ./release_files/' . $package->get('release_filename') . ".zip $file");
+$package->run_command('cd ./../webpi && ' . $compress_programs['zip'] . " ./../new_version/$file *");
+$package->run_command("md5sum $file > $file.md5");
+
// verify results
chdir($package->locations['root']);
$package->begin_status('********** Verifying packages **********');
diff --git a/build/webpi/install/mssql.sql b/build/webpi/install/mssql.sql
new file mode 100644
index 0000000000..9c0b46678a
--- /dev/null
+++ b/build/webpi/install/mssql.sql
@@ -0,0 +1,39 @@
+/**********************************************************************/
+/* Install.SQL */
+/* Creates a login and makes the user a member of db roles */
+/* */
+/**********************************************************************/
+
+-- Declare variables for database name, username and password
+DECLARE @dbName sysname,
+ @dbUser sysname,
+ @dbPwd nvarchar(max);
+
+-- Set variables for database name, username and password
+SET @dbName = 'PlaceHolderForDb';
+SET @dbUser = 'PlaceHolderForUser';
+SET @dbPwd = 'PlaceHolderForPassword';
+
+DECLARE @cmd nvarchar(max)
+
+-- Create login
+IF( SUSER_SID(@dbUser) is null )
+BEGIN
+ print '-- Creating login '
+ SET @cmd = N'CREATE LOGIN ' + quotename(@dbUser) + N' WITH PASSWORD ='''+ replace(@dbPwd, '''', '''''') + N''''
+ EXEC(@cmd)
+END
+
+-- Create database user and map to login
+-- and add user to the datareader, datawriter, ddladmin and securityadmin roles
+--
+SET @cmd = N'USE ' + quotename(@DBName) + N';
+IF( NOT EXISTS (SELECT * FROM sys.database_principals WHERE name = ''' + replace(@dbUser, '''', '''''') + N'''))
+BEGIN
+ print ''-- Creating user'';
+ CREATE USER ' + quotename(@dbUser) + N' FOR LOGIN ' + quotename(@dbUser) + N';
+ print ''-- Adding user'';
+ EXEC sp_addrolemember ''db_owner'', ''' + replace(@dbUser, '''', '''''') + N''';
+END'
+EXEC(@cmd)
+GO
diff --git a/build/webpi/install/mysql.sql b/build/webpi/install/mysql.sql
new file mode 100644
index 0000000000..5c9d8cd922
--- /dev/null
+++ b/build/webpi/install/mysql.sql
@@ -0,0 +1,15 @@
+USE PlaceHolderForDb$$
+
+DROP PROCEDURE IF EXISTS add_user $$
+
+CREATE PROCEDURE add_user()
+BEGIN
+DECLARE EXIT HANDLER FOR 1044 BEGIN END;
+GRANT ALL PRIVILEGES ON PlaceHolderForDb.* to 'PlaceHolderForUser'@'PlaceHolderForServer' IDENTIFIED BY 'PlaceHolderForPassword';
+FLUSH PRIVILEGES;
+END
+$$
+
+CALL add_user() $$
+
+DROP PROCEDURE IF EXISTS add_user $$
diff --git a/build/webpi/manifest.xml b/build/webpi/manifest.xml
new file mode 100644
index 0000000000..947377893b
--- /dev/null
+++ b/build/webpi/manifest.xml
@@ -0,0 +1,13 @@
+<msdeploy.iisapp>
+ <iisapp path="phpBB3" />
+
+ <dbmysql path="install/mysql.sql" commandDelimiter="$$" removeCommandDelimiter="true" />
+
+ <dbfullsql path="install/mssql.sql" />
+
+ <setAcl path="phpBB3/cache" setAclAccess="Modify" setAclUser="anonymousAuthenticationUser" />
+ <setAcl path="phpBB3/files" setAclAccess="Modify" setAclUser="anonymousAuthenticationUser" />
+ <setAcl path="phpBB3/store" setAclAccess="Modify" setAclUser="anonymousAuthenticationUser" />
+ <setAcl path="phpBB3/images/avatars/upload" setAclAccess="Modify" setAclUser="anonymousAuthenticationUser" />
+ <setAcl path="phpBB3/config.php" setAclAccess="Modify" setAclUser="anonymousAuthenticationUser" setAclResourceType="File" />
+</msdeploy.iisapp>
diff --git a/build/webpi/parameters.xml b/build/webpi/parameters.xml
new file mode 100644
index 0000000000..770cabf95b
--- /dev/null
+++ b/build/webpi/parameters.xml
@@ -0,0 +1,226 @@
+<parameters>
+ <parameter
+ name="AppPath"
+ defaultValue="Default Web Site/phpBB3"
+ tags="iisapp">
+
+ <parameterEntry
+ type="ProviderPath"
+ scope="iisapp"
+ match="phpBB3" />
+ </parameter>
+
+ <parameter
+ name="aclCache"
+ description="Sets the ACL on the cache/ folder"
+ defaultValue="{AppPath}/cache"
+ tags="Hidden">
+
+ <parameterEntry
+ type="ProviderPath"
+ scope="setAcl"
+ match="phpBB3/cache" />
+ </parameter>
+
+ <parameter
+ name="aclFiles"
+ description="Sets the ACL on the files/ folder"
+ defaultValue="{AppPath}/files"
+ tags="Hidden">
+
+ <parameterEntry
+ type="ProviderPath"
+ scope="setAcl"
+ match="phpBB3/files" />
+ </parameter>
+
+ <parameter
+ name="aclStore"
+ description="Sets the ACL on the store/ folder"
+ defaultValue="{AppPath}/store"
+ tags="Hidden">
+
+ <parameterEntry
+ type="ProviderPath"
+ scope="setAcl"
+ match="phpBB3/store" />
+ </parameter>
+
+ <parameter
+ name="aclAvatarUpload"
+ description="Sets the ACL on the avatars/upload/ folder"
+ defaultValue="{AppPath}/images/avatars/upload"
+ tags="Hidden">
+
+ <parameterEntry
+ type="ProviderPath"
+ scope="setAcl"
+ match="phpBB3/images/avatars/upload" />
+ </parameter>
+
+ <parameter
+ name="aclConfig"
+ description="Sets the ACL on the config.php file"
+ defaultValue="{AppPath}/config.php"
+ tags="Hidden">
+
+ <parameterEntry
+ type="ProviderPath"
+ scope="setAcl"
+ match="phpBB3/config.php" />
+ </parameter>
+
+ <parameter
+ name="DatabaseServer"
+ description="Enter the database server"
+ defaultValue=".\SQLExpress"
+ tags="SQL, dbServer" >
+ </parameter>
+
+ <parameter
+ name="DatabaseName"
+ description="Database name for your application."
+ defaultValue="phpbb"
+ tags="SQL, dbName">
+
+ <parameterEntry
+ type="TextFile"
+ scope="install/mssql.sql"
+ match="PlaceHolderForDb" />
+ </parameter>
+
+ <parameter
+ name="DatabaseAdministrator"
+ description="Database server administartor username."
+ defaultValue="sa"
+ tags="SQL, DbAdminUsername" >
+ </parameter>
+
+ <parameter
+ name="DatabaseAdministratorPassword"
+ description="Database server administrator password."
+ tags="Password,SQL,DbAdminPassword">
+ </parameter>
+
+ <parameter
+ name="Database Username"
+ description="Username to access your database."
+ defaultValue="phpbb"
+ tags="SQL, DbUsername">
+
+ <parameterEntry
+ type="TextFile"
+ scope="install/mssql.sql"
+ match="PlaceHolderForUser" />
+ </parameter>
+
+ <parameter
+ name="Database Password"
+ description="Password for your phpBB database. (Minimum 4 characters)"
+ tags="New, Password,SQL, DbUserPassword">
+
+ <parameterValidation
+ type = "RegularExpression"
+ validationString = "^.{4,}$" />
+
+ <parameterEntry
+ type="TextFile"
+ scope="install/mssql.sql"
+ match="PlaceHolderForPassword" />
+ </parameter>
+
+ <parameter
+ name="ConnectionString"
+ description="Automatically sets the connection string for the connection request."
+ defaultValue="Server={DatabaseServer};Database={DatabaseName};uid={DatabaseAdministrator};Pwd={DatabaseAdministratorPassword};"
+ tags="Hidden,SQLConnectionString,Validate">
+
+ <parameterEntry
+ type="ProviderPath"
+ scope="dbfullsql"
+ match="install/mssql.sql" />
+ </parameter>
+
+ <parameter
+ name="SQL Database type"
+ description="SQL database type"
+ defaultValue="mssql"
+ tags="SQL,Hidden">
+ </parameter>
+
+ <parameter
+ name="MySQL Database Server"
+ description="Enter the hostname"
+ defaultValue="localhost"
+ tags="MySQL, dbServer">
+
+ <parameterEntry
+ type="TextFile"
+ scope="install/mysql.sql"
+ match="PlaceHolderForServer" />
+ </parameter>
+
+ <parameter
+ name="Application Database Name"
+ description="Database Name for your application."
+ defaultValue="phpbb"
+ tags="MySQL, dbName">
+
+ <parameterEntry
+ type="TextFile"
+ scope="install/mysql.sql"
+ match="PlaceHolderForDb" />
+ </parameter>
+
+ <parameter
+ name="MySQL Database Administrator"
+ description="Database administrator username."
+ defaultValue="root"
+ tags="MySQL, DbAdminUsername" >
+ </parameter>
+
+ <parameter
+ name="MySQL Database Administrator Password"
+ description="Database administrator password."
+ tags="Password,MySQL,DbAdminPassword" >
+ </parameter>
+
+ <parameter
+ name="phpBB Database Username"
+ description="Username to access your phpBB database."
+ defaultValue="phpbb"
+ tags="MySQL, DbUsername">
+
+ <parameterEntry
+ type="TextFile"
+ scope="install/mysql.sql"
+ match="PlaceHolderForUser" />
+ </parameter>
+
+ <parameter
+ name="MySQL Database Password"
+ description="Password for your phpBB database. (Minimum 4 characters)"
+ tags="New, Password,MySQL,DbUserPassword">
+
+ <parameterValidation
+ type = "RegularExpression"
+ validationString = "^.{4,}$" />
+
+ <parameterEntry
+ type="TextFile"
+ scope="install/mysql.sql"
+ match="PlaceHolderForPassword" />
+ </parameter>
+
+ <parameter
+ name="MySQLConnectionString"
+ description="Automatically sets the connection string for the connection request."
+ defaultValue="Server={MySQL Database Server};Database={Application Database Name};uid={MySQL Database Administrator};Pwd={MySQL Database Administrator Password};"
+ tags="Hidden,MySQLConnectionString,Validate">
+
+ <parameterEntry
+ type="ProviderPath"
+ scope="dbmysql"
+ match="install/mysql.sql" />
+ </parameter>
+</parameters>
diff --git a/git-tools/hooks/pre-commit b/git-tools/hooks/pre-commit
index 23ab8d6cdb..9719b91746 100755
--- a/git-tools/hooks/pre-commit
+++ b/git-tools/hooks/pre-commit
@@ -1,4 +1,4 @@
-#!/usr/bin/env bash
+#!/bin/sh
#
# A hook to disallow php syntax errors to be committed
# by running php -l (lint) on them. It requires php-cli
@@ -27,7 +27,10 @@ fi
error=0
errors=""
-IFS=$'\n'
+# dash does not support $'\n':
+# http://forum.soft32.com/linux2/Bug-409179-DASH-Settings-IFS-work-properly-ftopict70039.html
+IFS='
+'
# get a list of staged files
for line in $(git diff-index --cached --full-index $against)
do
@@ -59,7 +62,7 @@ do
then
error=1
# Swap back in correct filenames
- errors+=${result//in - on/"$filename"}
+ errors=$(echo "$errors"; echo "$result" |sed -e "s@in - on@in $filename on@g")
fi
done
unset IFS