This file was deleted.

This file was deleted.

Binary file not shown.
Binary file not shown.
Binary file not shown.
Deleted file not rendered
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

This file was deleted.

Binary file not shown.

This file was deleted.

Binary file not shown.

This file was deleted.

Binary file not shown.

This file was deleted.

Binary file not shown.

This file was deleted.

Binary file not shown.

This file was deleted.

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

This file was deleted.

This file was deleted.

This file was deleted.

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -2,23 +2,23 @@
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>Talifun.Web.Crusher</id>
<version>2.0</version>
<version>2.5.0.0</version>
<authors>Taliesin Sisson</authors>
<owners>Talifun Ltd</owners>
<title>Talifun.Web.Crusher</title>
<licenseUrl>http://www.apache.org/licenses/LICENSE-2.0</licenseUrl>
<projectUrl>http://code.google.com/p/talifun-web/wiki/CrusherModule</projectUrl>
<projectUrl>http://www.talifun.com/products/talifun-web/crusher-module</projectUrl>
<iconUrl>http://code.google.com/p/talifun-web/logo</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>A module that compresses js into a single file, and css into a single file. </description>
<summary>A module that makes it easily to implemented best practices and increase performance of asp.net webforms and asp.net mvc websites.</summary>
<language>en-GB</language>
<tags>talifun http module js css minify crush combine compress</tags>
<dependencies>
<dependency id="Talifun.Web" version="2.0" />
<dependency id="Talifun.Web" version="2.5.0.0" />
</dependencies>
</metadata>
<files>
<file src="Transforms\Talifun.Web.Crusher.web.config.transform" target="content\web.config.transform" />
</files>
</package>
</package>
@@ -0,0 +1,24 @@
<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>Talifun.Web.CssSprite</id>
<version>2.5.0.0</version>
<authors>Taliesin Sisson</authors>
<owners>Talifun Ltd</owners>
<title>Talifun.Web.CssSprite</title>
<licenseUrl>http://www.apache.org/licenses/LICENSE-2.0</licenseUrl>
<projectUrl>http://www.talifun.com/products/talifun-web/css-sprite-module</projectUrl>
<iconUrl>http://code.google.com/p/talifun-web/logo</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>A module that compresses images into a single image, and then creates a css file to split image into sprites. </description>
<summary>A module that makes it easily to implemented best practices and increase performance of asp.net webforms and asp.net mvc websites.</summary>
<language>en-GB</language>
<tags>talifun http module css sprite image graphic picture combine</tags>
<dependencies>
<dependency id="Talifun.Web" version="2.5.0.0" />
</dependencies>
</metadata>
<files>
<file src="Transforms\Talifun.Web.CssSprite.web.config.transform" target="content\web.config.transform" />
</files>
</package>
@@ -1,22 +1,27 @@
<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>Talifun.Web</id>
<version>2.0</version>
<title>Talifun.Web</title>
<authors>Taliesin Sisson</authors>
<owners>Talifun Ltd</owners>
<licenseUrl>http://www.apache.org/licenses/LICENSE-2.0</licenseUrl>
<projectUrl>http://code.google.com/p/talifun-web/</projectUrl>
<iconUrl>http://code.google.com/p/talifun-web/logo</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>A suite of Http Modules and Http Handlers to easily implemented best practices and increase performance of asp.net webforms and asp.net mvc websites.</description>
<summary>A suite of Http Modules and Http Handlers to easily implemented best practices and increase performance of asp.net webforms and asp.net mvc websites.</summary>
<language>en-GB</language>
<tags>talifun http module</tags>
<dependencies>
<dependency id="dotless" version="1.2.1.0" />
<dependency id="YUICompressor.NET" version="1.6.0.2" />
</dependencies>
</metadata>
</package>
<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>Talifun.Web</id>
<version>2.5.0.0</version>
<title>Talifun.Web</title>
<authors>Taliesin Sisson</authors>
<owners>Talifun Ltd</owners>
<licenseUrl>http://www.apache.org/licenses/LICENSE-2.0</licenseUrl>
<projectUrl>http://www.talifun.com/products/talifun-web/</projectUrl>
<iconUrl>http://code.google.com/p/talifun-web/logo</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>A suite of Http Modules and Http Handlers to easily implemented best practices and increase performance of asp.net webforms and asp.net mvc websites.</description>
<summary>A suite of Http Modules and Http Handlers to easily implemented best practices and increase performance of asp.net webforms and asp.net mvc websites.</summary>
<language>en-GB</language>
<tags>talifun http module</tags>
<dependencies>
<dependency id="dotless" version="1.3.0.0" />
<dependency id="YUICompressor.NET" version="1.7.1.0" />
</dependencies>
</metadata>
<files>
<file src="bin\Talifun.Web.dll" target="lib/net40" />
<file src="bin\Talifun.Crusher.exe" target="tools" />
<file src="bin\Talifun.Crusher.exe.config" target="tools" />
</files>
</package>
@@ -0,0 +1,144 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Talifun.Web", "src\Talifun.Web\Talifun.Web.csproj", "{FB8D10A5-40A2-44B0-A30F-1B316B5AFC34}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Talifun.Web.Mvc", "src\Talifun.Web.Mvc\Talifun.Web.Mvc.csproj", "{5DF03ED5-2C45-4F23-A1E3-248383803D11}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Talifun.Web.UrlRewriter", "src\Talifun.Web.UrlRewriter\Talifun.Web.UrlRewriter.csproj", "{43D2AC34-0EEA-4A82-B907-80D4CBDD63A1}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Talifun.Web Examples", "Talifun.Web Examples", "{E40C6C03-83CA-4590-84EF-90FCB8253463}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Compress.Demo", "src\Talifun.Web.Examples\Compress.Demo\Compress.Demo.csproj", "{F4AB8CB0-90E3-46D6-93E1-8C796F388E68}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Crusher.Demo", "src\Talifun.Web.Examples\Crusher.Demo\Crusher.Demo.csproj", "{0F576746-2042-433F-8543-FCB9321FDEF0}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CssSprite.Demo", "src\Talifun.Web.Examples\CssSprite.Demo\CssSprite.Demo.csproj", "{B28274C1-B220-4D3B-9CB4-DD3A5D877B02}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LogUrl.Demo", "src\Talifun.Web.Examples\LogUrl.Demo\LogUrl.Demo.csproj", "{04C7820F-E87A-4E09-BBAB-CEF8F73152B6}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RegexUrlAuthorization.Demo", "src\Talifun.Web.Examples\RegexUrlAuthorization.Demo\RegexUrlAuthorization.Demo.csproj", "{C1C1A286-780B-44AD-8FB0-AE78528B68EC}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StaticFile.Demo", "src\Talifun.Web.Examples\StaticFile.Demo\StaticFile.Demo.csproj", "{EE3D28B2-2146-4078-BC89-2A4270257085}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StaticFileGenericHandler.Demo", "src\Talifun.Web.Examples\StaticFileGenericHandler.Demo\StaticFileGenericHandler.Demo.csproj", "{43D80C20-9C68-49EC-BABD-0DCF6EEBEBEB}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IpAddressAuthentication.Demo", "src\Talifun.Web.Examples\IpAddressAuthentication.Demo\IpAddressAuthentication.Demo.csproj", "{F9590CD0-6DF8-4393-855C-6ABC56DAB6F6}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Talifun.Web.Mvc Examples", "Talifun.Web.Mvc Examples", "{CFF647EC-A72D-4D59-B3FD-250894F85E59}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StaticFile.Demo", "src\Talifun.Web.Mvc.Examples\StaticFile.Demo\StaticFile.Demo.csproj", "{25C56455-C2FF-4C1F-801D-496AF186D1C3}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "UrlReWriter", "UrlReWriter", "{9203C04A-7B5A-4942-A0B6-6833D3D405D1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UrlReWriter.Demo.CustomUrlRewriter", "src\Talifun.Web.UrlRewriter.Examples\UrlReWriter.Demo.CustomUrlRewriter\UrlReWriter.Demo.CustomUrlRewriter.csproj", "{3E797996-D4C7-45D1-8B5F-B3C87FC4F886}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UrlRewriter.Demo", "src\Talifun.Web.UrlRewriter.Examples\UrlRewriter.Demo\UrlRewriter.Demo.csproj", "{EB258590-626C-4F1D-ABEE-E863551BB5EC}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Talifun.Web.Tests", "src\Talifun.Web.Tests\Talifun.Web.Tests.csproj", "{7C661FBC-E6BE-4C1B-9002-E17CEA4531F9}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Talifun.Crusher", "src\Talifun.Crusher\Talifun.Crusher.csproj", "{3DADA59F-3E27-44F5-93A5-F3D4C0C77D9B}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build", "Build", "{F6495657-21D5-4190-8509-4187C032367F}"
ProjectSection(SolutionItems) = preProject
build\assemblyinfo.ps1 = build\assemblyinfo.ps1
build\bootstrap.ps1 = build\bootstrap.ps1
build\build.ps1 = build\build.ps1
build\chewie.psm1 = build\chewie.psm1
build\git.ps1 = build\git.ps1
build\msbuild.ps1 = build\msbuild.ps1
build\nuget.ps1 = build\nuget.ps1
build\nunit.ps1 = build\nunit.ps1
build\overrides.ps1 = build\overrides.ps1
build\settings.ps1 = build\settings.ps1
build\xunit.ps1 = build\xunit.ps1
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{FB8D10A5-40A2-44B0-A30F-1B316B5AFC34}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FB8D10A5-40A2-44B0-A30F-1B316B5AFC34}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FB8D10A5-40A2-44B0-A30F-1B316B5AFC34}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FB8D10A5-40A2-44B0-A30F-1B316B5AFC34}.Release|Any CPU.Build.0 = Release|Any CPU
{5DF03ED5-2C45-4F23-A1E3-248383803D11}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5DF03ED5-2C45-4F23-A1E3-248383803D11}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5DF03ED5-2C45-4F23-A1E3-248383803D11}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5DF03ED5-2C45-4F23-A1E3-248383803D11}.Release|Any CPU.Build.0 = Release|Any CPU
{43D2AC34-0EEA-4A82-B907-80D4CBDD63A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{43D2AC34-0EEA-4A82-B907-80D4CBDD63A1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{43D2AC34-0EEA-4A82-B907-80D4CBDD63A1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{43D2AC34-0EEA-4A82-B907-80D4CBDD63A1}.Release|Any CPU.Build.0 = Release|Any CPU
{F4AB8CB0-90E3-46D6-93E1-8C796F388E68}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F4AB8CB0-90E3-46D6-93E1-8C796F388E68}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F4AB8CB0-90E3-46D6-93E1-8C796F388E68}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F4AB8CB0-90E3-46D6-93E1-8C796F388E68}.Release|Any CPU.Build.0 = Release|Any CPU
{0F576746-2042-433F-8543-FCB9321FDEF0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0F576746-2042-433F-8543-FCB9321FDEF0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0F576746-2042-433F-8543-FCB9321FDEF0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0F576746-2042-433F-8543-FCB9321FDEF0}.Release|Any CPU.Build.0 = Release|Any CPU
{B28274C1-B220-4D3B-9CB4-DD3A5D877B02}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B28274C1-B220-4D3B-9CB4-DD3A5D877B02}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B28274C1-B220-4D3B-9CB4-DD3A5D877B02}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B28274C1-B220-4D3B-9CB4-DD3A5D877B02}.Release|Any CPU.Build.0 = Release|Any CPU
{04C7820F-E87A-4E09-BBAB-CEF8F73152B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{04C7820F-E87A-4E09-BBAB-CEF8F73152B6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{04C7820F-E87A-4E09-BBAB-CEF8F73152B6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{04C7820F-E87A-4E09-BBAB-CEF8F73152B6}.Release|Any CPU.Build.0 = Release|Any CPU
{C1C1A286-780B-44AD-8FB0-AE78528B68EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C1C1A286-780B-44AD-8FB0-AE78528B68EC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C1C1A286-780B-44AD-8FB0-AE78528B68EC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C1C1A286-780B-44AD-8FB0-AE78528B68EC}.Release|Any CPU.Build.0 = Release|Any CPU
{EE3D28B2-2146-4078-BC89-2A4270257085}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EE3D28B2-2146-4078-BC89-2A4270257085}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EE3D28B2-2146-4078-BC89-2A4270257085}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EE3D28B2-2146-4078-BC89-2A4270257085}.Release|Any CPU.Build.0 = Release|Any CPU
{43D80C20-9C68-49EC-BABD-0DCF6EEBEBEB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{43D80C20-9C68-49EC-BABD-0DCF6EEBEBEB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{43D80C20-9C68-49EC-BABD-0DCF6EEBEBEB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{43D80C20-9C68-49EC-BABD-0DCF6EEBEBEB}.Release|Any CPU.Build.0 = Release|Any CPU
{F9590CD0-6DF8-4393-855C-6ABC56DAB6F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F9590CD0-6DF8-4393-855C-6ABC56DAB6F6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F9590CD0-6DF8-4393-855C-6ABC56DAB6F6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F9590CD0-6DF8-4393-855C-6ABC56DAB6F6}.Release|Any CPU.Build.0 = Release|Any CPU
{25C56455-C2FF-4C1F-801D-496AF186D1C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{25C56455-C2FF-4C1F-801D-496AF186D1C3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{25C56455-C2FF-4C1F-801D-496AF186D1C3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{25C56455-C2FF-4C1F-801D-496AF186D1C3}.Release|Any CPU.Build.0 = Release|Any CPU
{3E797996-D4C7-45D1-8B5F-B3C87FC4F886}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3E797996-D4C7-45D1-8B5F-B3C87FC4F886}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3E797996-D4C7-45D1-8B5F-B3C87FC4F886}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3E797996-D4C7-45D1-8B5F-B3C87FC4F886}.Release|Any CPU.Build.0 = Release|Any CPU
{EB258590-626C-4F1D-ABEE-E863551BB5EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EB258590-626C-4F1D-ABEE-E863551BB5EC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EB258590-626C-4F1D-ABEE-E863551BB5EC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EB258590-626C-4F1D-ABEE-E863551BB5EC}.Release|Any CPU.Build.0 = Release|Any CPU
{7C661FBC-E6BE-4C1B-9002-E17CEA4531F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7C661FBC-E6BE-4C1B-9002-E17CEA4531F9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7C661FBC-E6BE-4C1B-9002-E17CEA4531F9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7C661FBC-E6BE-4C1B-9002-E17CEA4531F9}.Release|Any CPU.Build.0 = Release|Any CPU
{3DADA59F-3E27-44F5-93A5-F3D4C0C77D9B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3DADA59F-3E27-44F5-93A5-F3D4C0C77D9B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3DADA59F-3E27-44F5-93A5-F3D4C0C77D9B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3DADA59F-3E27-44F5-93A5-F3D4C0C77D9B}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{F4AB8CB0-90E3-46D6-93E1-8C796F388E68} = {E40C6C03-83CA-4590-84EF-90FCB8253463}
{0F576746-2042-433F-8543-FCB9321FDEF0} = {E40C6C03-83CA-4590-84EF-90FCB8253463}
{B28274C1-B220-4D3B-9CB4-DD3A5D877B02} = {E40C6C03-83CA-4590-84EF-90FCB8253463}
{04C7820F-E87A-4E09-BBAB-CEF8F73152B6} = {E40C6C03-83CA-4590-84EF-90FCB8253463}
{C1C1A286-780B-44AD-8FB0-AE78528B68EC} = {E40C6C03-83CA-4590-84EF-90FCB8253463}
{EE3D28B2-2146-4078-BC89-2A4270257085} = {E40C6C03-83CA-4590-84EF-90FCB8253463}
{43D80C20-9C68-49EC-BABD-0DCF6EEBEBEB} = {E40C6C03-83CA-4590-84EF-90FCB8253463}
{F9590CD0-6DF8-4393-855C-6ABC56DAB6F6} = {E40C6C03-83CA-4590-84EF-90FCB8253463}
{25C56455-C2FF-4C1F-801D-496AF186D1C3} = {CFF647EC-A72D-4D59-B3FD-250894F85E59}
{3E797996-D4C7-45D1-8B5F-B3C87FC4F886} = {9203C04A-7B5A-4942-A0B6-6833D3D405D1}
{EB258590-626C-4F1D-ABEE-E863551BB5EC} = {9203C04A-7B5A-4942-A0B6-6833D3D405D1}
EndGlobalSection
EndGlobal

This file was deleted.

This file was deleted.

Binary file not shown.

This file was deleted.

Binary file not shown.

This file was deleted.

Binary file not shown.

This file was deleted.

Binary file not shown.

This file was deleted.

This file was deleted.

Binary file not shown.
Binary file not shown.
Binary file not shown.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

@@ -0,0 +1,3 @@
@echo off

powershell -NonInteractive -NoProfile -ExecutionPolicy Unrestricted -Command "& { .\build.ps1 %* }"
@@ -0,0 +1,27 @@
param(
[Parameter(Position=0,Mandatory=0)]
[string]$buildFile = "$(Split-Path -parent $MyInvocation.MyCommand.Definition)\build\build.ps1",
[Parameter(Position=1,Mandatory=0)]
[string[]]$taskList = @(),
[Parameter(Position=2,Mandatory=0)]
[string]$framework = '4.0',
[Parameter(Position=3,Mandatory=0)]
[switch]$docs = $false,
[Parameter(Position=4,Mandatory=0)]
[System.Collections.Hashtable]$parameters = @{},
[Parameter(Position=5, Mandatory=0)]
[System.Collections.Hashtable]$properties = @{}
)

$scriptPath = (Split-Path -parent $MyInvocation.MyCommand.Definition)
$buildPath = (Resolve-Path $scriptPath\build)

. $buildPath\bootstrap.ps1 $buildPath
$psakeModule = @(Get-ChildItem $scriptPath\* -recurse -include psake.ps1)[0].FullName
. $psakeModule $buildFile $taskList $framework $docs $parameters $properties

if($env:BUILD_NUMBER) {
[Environment]::Exit($lastexitcode)
} else {
exit $lastexitcode
}
@@ -0,0 +1,3 @@
install_to '.'
chew 'psake' '4.1.0'
chew 'NUnit.Runners' '2.6.0.12051'
@@ -0,0 +1,176 @@
Toji is intended to be used in both open-source and commercial environments. To allow its use in as many
situations as possible, Toji is dual-licensed. You may choose to use Toji under either the Apache License,
Version 2.0, or the Microsoft Public License (Ms-PL). These licenses are essentially identical, but you are
encouraged to evaluate both to determine which best fits your intended use. Some components used by Toji
are licensed under different terms. You are encouraged to review the licenses for the individual components.

-----

Apache License, Version 2.0

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1
through 9 of this document.

"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.

"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by,
or are under common control with that entity. For the purposes of this definition, "control" means (i) the power,
direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or
(ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.

"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.

"Source" form shall mean the preferred form for making modifications, including but not limited to software source
code, documentation source, and configuration files.

"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form,
including but not limited to compiled object code, generated documentation, and conversions to other media types.

"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License,
as indicated by a copyright notice that is included in or attached to the work (an example is provided in the
Appendix below).

"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from)
the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent,
as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include
works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative
Works thereof.

"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications
or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion
in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the
copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written
communication sent to the Licensor or its representatives, including but not limited to communication on electronic
mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of,
the Licensor for the purpose of discussing and improving the Work, but excluding communication that is
conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."

"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been
received by Licensor and subsequently incorporated within the Work.

2. Grant of Copyright License.

Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide,
non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or
Object form.

3. Grant of Patent License.

Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide,
non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make,
have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to
those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone
or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging
that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent
infringement, then any patent licenses granted to You under this License for that Work shall terminate as of
the date such litigation is filed.

4. Redistribution.

You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You meet the following conditions:

1. You must give any other recipients of the Work or Derivative Works a copy of this License; and
2. You must cause any modified files to carry prominent notices stating that You changed the files; and
3. You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent,
trademark, and attribution notices from the Source form of the Work, excluding those notices that do not
pertain to any part of the Derivative Works; and
4. If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You
distribute must include a readable copy of the attribution notices contained within such NOTICE file,
excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the
following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source
form or documentation, if provided along with the Derivative Works; or, within a display generated by the
Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file
are for informational purposes only and do not modify the License. You may add Your own attribution notices
within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work,
provided that such additional attribution notices cannot be construed as modifying the License.
5. You may add Your own copyright statement to Your modifications and may provide additional or different license
terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative
Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the
conditions stated in this License.

5. Submission of Contributions.

Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You
to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you
may have executed with Licensor regarding such Contributions.

6. Trademarks.

This License does not grant permission to use the trade names, trademarks, service marks, or product names of the
Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing
the content of the NOTICE file.

7. Disclaimer of Warranty.

Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides
its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,
including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS
FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing
the Work and assume any risks associated with Your exercise of permissions under this License.

8. Limitation of Liability.

In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless
required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any
Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential
damages of any character arising as a result of this License or out of the use or inability to use the Work
(including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction,
or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility
of such damages.

9. Accepting Warranty or Additional Liability.

While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for,
acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole
responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold
each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.

-----

Microsoft Public License (Ms-PL)

This license governs use of the accompanying software. If you use the software, you
accept this license. If you do not accept the license, do not use the software.

1. Definitions
The terms "reproduce," "reproduction," "derivative works," and "distribution" have the
same meaning here as under U.S. copyright law.
A "contribution" is the original software, or any additions or changes to the software.
A "contributor" is any person that distributes its contribution under this license.
"Licensed patents" are a contributor's patent claims that read directly on its contribution.

2. Grant of Rights
(A) Copyright Grant- Subject to the terms of this license, including the license conditions and
limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free
copyright license to reproduce its contribution, prepare derivative works of its contribution,
and distribute its contribution or any derivative works that you create.
(B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations
in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under
its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose
of its contribution in the software or derivative works of the contribution in the software.

3. Conditions and Limitations
(A) No Trademark License- This license does not grant you rights to use any contributors' name, logo,
or trademarks.
(B) If you bring a patent claim against any contributor over patents that you claim are infringed by
the software, your patent license from such contributor to the software ends automatically.
(C) If you distribute any portion of the software, you must retain all copyright, patent, trademark,
and attribution notices that are present in the software.
(D) If you distribute any portion of the software in source code form, you may do so only under this
license by including a complete copy of this license with your distribution. If you distribute
any portion of the software in compiled or object code form, you may only do so under a license
that complies with this license.
(E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express
warranties, guarantees or conditions. You may have additional consumer rights under your local laws
which this license cannot change. To the extent permitted under your local laws, the contributors
exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,15 @@
Copyright ďż˝ 2002-2012 Charlie Poole
Copyright ďż˝ 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov
Copyright ďż˝ 2000-2002 Philip A. Craig

This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.

Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:

1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment (see the following) in the product documentation is required.

Portions Copyright ďż˝ 2002-2012 Charlie Poole or Copyright ďż˝ 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov or Copyright ďż˝ 2000-2002 Philip A. Craig

2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.

3. This notice may not be removed or altered from any source distribution.
File renamed without changes.
@@ -11,7 +11,7 @@

<!-- Set root logger level to DEBUG and its only appender to A1 -->
<root>
<level value="DEBUG" />
<level value="Info" />
<appender-ref ref="A1" />
</root>

@@ -11,7 +11,7 @@

<!-- Set root logger level to DEBUG and its only appender to A1 -->
<root>
<level value="DEBUG" />
<level value="Info" />
<appender-ref ref="A1" />
</root>

Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!--
The .NET 2.0 build of nunit-agent only
runs under .NET 2.0 or higher. The setting
useLegacyV2RuntimeActivationPolicy only applies
under .NET 4.0 and permits use of mixed mode
assemblies, which would otherwise not load
correctly.
-->
<startup useLegacyV2RuntimeActivationPolicy="true">
<!--
Nunit-agent is normally run by the console or gui
runners and not independently. In normal usage,
the runner specifies which runtime should be used.
Do NOT add any supportedRuntime elements here,
since they may prevent the runner from controlling
the runtime that is used!
-->
</startup>

<runtime>
<!-- Ensure that test exceptions don't crash NUnit -->
<legacyUnhandledExceptionPolicy enabled="1" />

<!-- Run partial trust V2 assemblies in full trust under .NET 4.0 -->
<loadFromRemoteSources enabled="true" />

<!-- Look for addins in the addins directory for now -->
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="lib;addins"/>
</assemblyBinding>

</runtime>

</configuration>
Binary file not shown.
@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!--
The .NET 2.0 build of nunit-agent only
runs under .NET 2.0 or higher. The setting
useLegacyV2RuntimeActivationPolicy only applies
under .NET 4.0 and permits use of mixed mode
assemblies, which would otherwise not load
correctly.
-->
<startup useLegacyV2RuntimeActivationPolicy="true">
<!--
Nunit-agent is normally run by the console or gui
runners and not independently. In normal usage,
the runner specifies which runtime should be used.
Do NOT add any supportedRuntime elements here,
since they may prevent the runner from controlling
the runtime that is used!
-->
</startup>

<runtime>
<!-- Ensure that test exceptions don't crash NUnit -->
<legacyUnhandledExceptionPolicy enabled="1" />

<!-- Run partial trust V2 assemblies in full trust under .NET 4.0 -->
<loadFromRemoteSources enabled="true" />

<!-- Look for addins in the addins directory for now -->
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="lib;addins"/>
</assemblyBinding>

</runtime>

</configuration>
Binary file not shown.
@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!--
The .NET 2.0 build of the console runner only
runs under .NET 2.0 or higher. The setting
useLegacyV2RuntimeActivationPolicy only applies
under .NET 4.0 and permits use of mixed mode
assemblies, which would otherwise not load
correctly.
-->
<startup useLegacyV2RuntimeActivationPolicy="true">
<!-- Comment out the next line to force use of .NET 4.0 -->
<supportedRuntime version="v2.0.50727" />
<supportedRuntime version="v4.0.30319" />
</startup>

<runtime>
<!-- Ensure that test exceptions don't crash NUnit -->
<legacyUnhandledExceptionPolicy enabled="1" />

<!-- Run partial trust V2 assemblies in full trust under .NET 4.0 -->
<loadFromRemoteSources enabled="true" />

<!-- Look for addins in the addins directory for now -->
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="lib;addins"/>
</assemblyBinding>

</runtime>

</configuration>
Binary file not shown.
@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!--
The .NET 2.0 build of the console runner only
runs under .NET 2.0 or higher. The setting
useLegacyV2RuntimeActivationPolicy only applies
under .NET 4.0 and permits use of mixed mode
assemblies, which would otherwise not load
correctly.
-->
<startup useLegacyV2RuntimeActivationPolicy="true">
<!-- Comment out the next line to force use of .NET 4.0 -->
<supportedRuntime version="v2.0.50727" />
<supportedRuntime version="v4.0.30319" />
</startup>

<runtime>
<!-- Ensure that test exceptions don't crash NUnit -->
<legacyUnhandledExceptionPolicy enabled="1" />

<!-- Run partial trust V2 assemblies in full trust under .NET 4.0 -->
<loadFromRemoteSources enabled="true" />

<!-- Look for addins in the addins directory for now -->
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="lib;addins"/>
</assemblyBinding>

</runtime>

</configuration>
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!--
The GUI only runs under .NET 2.0 or higher. The
useLegacyV2RuntimeActivationPolicy setting only
applies under .NET 4.0 and permits use of mixed
mode assemblies, which would otherwise not load
correctly.
-->
<startup useLegacyV2RuntimeActivationPolicy="true">
<!-- Comment out the next line to force use of .NET 4.0 -->
<supportedRuntime version="v2.0.50727" />
<supportedRuntime version="v4.0.30319" />
</startup>

<runtime>
<!-- Ensure that test exceptions don't crash NUnit -->
<legacyUnhandledExceptionPolicy enabled="1" />

<!-- Run partial trust V2 assemblies in full trust under .NET 4.0 -->
<loadFromRemoteSources enabled="true" />

<!-- Look for addins in the addins directory for now -->
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="lib;addins" />
</assemblyBinding>

</runtime>

</configuration>
Binary file not shown.
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!--
The GUI only runs under .NET 2.0 or higher. The
useLegacyV2RuntimeActivationPolicy setting only
applies under .NET 4.0 and permits use of mixed
mode assemblies, which would otherwise not load
correctly.
-->
<startup useLegacyV2RuntimeActivationPolicy="true">
<!-- Comment out the next line to force use of .NET 4.0 -->
<supportedRuntime version="v2.0.50727" />
<supportedRuntime version="v4.0.30319" />
</startup>

<runtime>
<!-- Ensure that test exceptions don't crash NUnit -->
<legacyUnhandledExceptionPolicy enabled="1" />

<!-- Run partial trust V2 assemblies in full trust under .NET 4.0 -->
<loadFromRemoteSources enabled="true" />

<!-- Look for addins in the addins directory for now -->
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="lib;addins" />
</assemblyBinding>

</runtime>

</configuration>
Binary file not shown.
Binary file not shown.
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="Windows-1252"?>
<?xml version="1.0" encoding="utf-8"?>
<configuration>

<!-- Set the level for tracing NUnit itself -->
Binary file not shown.
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="Windows-1252"?>
<?xml version="1.0" encoding="utf-8"?>
<configuration>

<!-- Set the level for tracing NUnit itself -->
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,3 @@
start pnunit-agent 8080 .
start pnunit-agent 8081 .
pnunit-launcher test.conf
@@ -0,0 +1,82 @@
<TestGroup>

<Variables>
<Variable name="$agent_host" value="localhost" />
</Variables>

<ParallelTests>

<!-- This is really just one test -->
<ParallelTest>
<Name>Testing</Name>
<Tests>
<TestConf>
<Name>Testing</Name>
<Assembly>pnunit.tests.dll</Assembly>
<TestToRun>TestLibraries.Testing.EqualTo19</TestToRun>
<Machine>$agent_host:8080</Machine>
</TestConf>
</Tests>
</ParallelTest>

<!-- Parallel Test on a single agent - no barriers -->
<ParallelTest>
<Name>Parallel_Tests</Name>
<Tests>
<TestConf>
<Name>ParallelTest_A_Test</Name>
<Assembly>pnunit.tests.dll</Assembly>
<TestToRun>TestLibraries.ParallelExample.ParallelTest_A</TestToRun>
<Machine>$agent_host:8080</Machine>
<TestParams>
<!-- sleep time in seconds -->
<string>2</string>
</TestParams>
</TestConf>
<TestConf>
<Name>ParallelTest_B_Test</Name>
<Assembly>pnunit.tests.dll</Assembly>
<TestToRun>TestLibraries.ParallelExample.ParallelTest_B</TestToRun>
<Machine>$agent_host:8080</Machine>
<TestParams>
<string>1</string>
<!-- sleep time in seconds -->
</TestParams>
</TestConf>
</Tests>
</ParallelTest>

<!-- Parallel Test using two agents - with wait barriers -->
<ParallelTest>
<Name>Parallel_Barriers</Name>
<Tests>
<TestConf>
<Name>Parallel_Barriers_TestA</Name>
<Assembly>pnunit.tests.dll</Assembly>
<TestToRun>TestLibraries.ParallelExampleWithBarriers.ParallelTestWithBarriersA</TestToRun>
<Machine>$agent_host:8080</Machine>
<TestParams>
</TestParams>
<WaitBarriers>
<string>START_BARRIER</string>
<string>WAIT_BARRIER</string>
</WaitBarriers>
</TestConf>
<TestConf>
<Name>Parallel_Barriers_TestB</Name>
<Assembly>pnunit.tests.dll</Assembly>
<TestToRun>TestLibraries.ParallelExampleWithBarriers.ParallelTestWithBarriersB</TestToRun>
<Machine>$agent_host:8081</Machine>
<TestParams>
</TestParams>
<WaitBarriers>
<string>START_BARRIER</string>
<string>WAIT_BARRIER</string>
</WaitBarriers>
</TestConf>
</Tests>
</ParallelTest>

</ParallelTests>

</TestGroup>
@@ -0,0 +1,43 @@
#
# Copyright (c) 2011-2012, Toji Project Contributors
#
# Dual-licensed under the Apache License, Version 2.0, and the Microsoft Public License (Ms-PL).
# See the file LICENSE.txt for details.
#

properties {
Write-Output "Loading assembly info properties"
# The assemblyinfo filename and location can be overridden in the settings.ps1
# You can also override the version pattern to "\d*\.\d*\.\d*\.\d*" if you want 4 digit
$assemblyinfo = @{}
$assemblyinfo.dir = "$($source.dir)"
$assemblyinfo.version_pattern = "\d*\.\d*\.\d*.\d*" # 3 digit for semver
$assemblyinfo.file = "GlobalAssemblyInfo.cs"
$assemblyinfo.contents = @"
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyCompany(`"`")]
[assembly: AssemblyProduct(`"`")]
[assembly: AssemblyCopyright(`"Copyright © 2012`")]
[assembly: AssemblyTrademark(`"`")]
[assembly: AssemblyCulture(`"`")]
[assembly: AssemblyVersion(`"1.0.0`")]
[assembly: AssemblyFileVersion(`"1.0.0`")]
"@
}

Task Version-AssemblyInfo {
$file = "$($assemblyinfo.dir)\$($assemblyinfo.file)"
if(!(Test-Path($file))) {
Set-Content -Value $assemblyinfo.contents -Path $file
Write-Host -ForegroundColor Red "GlobalAssemblyInfo was not detected has has been created: $($assemblyinfo.file)"
}
$content = Get-Content $file | % { [Regex]::Replace($_, $assemblyinfo.version_pattern, $build.version) }
Set-Content -Value $content -Path $file
}
@@ -0,0 +1,69 @@
#Requires -Version 2.0

#
# Copyright (c) 2011, Toji Project Contributors
#
# Dual-licensed under the Apache License, Version 2.0, and the Microsoft Public License (Ms-PL).
# See the file LICENSE.txt for details.
#

param(
[Parameter( Position = 0, Mandatory = 0 )]
[string] $path = ((Resolve-Path "$(Split-Path -parent $MyInvocation.MyCommand.Definition)\..\").Path),
[Parameter( Position = 1, Mandatory = 0 )]
[string] $install_to = 'Packages'
)

function script:BootStrap-Chewie {
if(!(test-path $pwd\.NugetFile)) {
new-item -path $pwd -name .NugetFile -itemtype file
add-content $pwd\.NugetFile "install_to '.'"
add-content $pwd\.NugetFile "chew 'psake' '4.1.0'"
}
}

function script:FileExistsInPath {
param (
[Parameter(Position=0,Mandatory=$true)]
[string] $fileName = $null
)

$path = Get-Childitem Env:Path
$found = $false
foreach ($folder in $path.Value.Split(";")) { if (Test-Path "$folder\$fileName") { $found = $true; break } }
return $found
}

function global:Resolve-NuGet {
$nuGetIsInPath = (FileExistsInPath "NuGet.exe") -or (FileExistsInPath "NuGet.bat")
$nuget = "NuGet"
if($nuGetIsInPath) {
$nuget = (@(get-command nuget) | % {$_.Definition} | ? { (Test-Path $_) } | Select-Object -First 1)
} else {
$nugets = @(Get-ChildItem "..\*" -recurse -include NuGet.exe)
if ($nugets.Length -le 0) {
Write-Output "No NuGet executables found."
return
}
$nuget = (Resolve-Path $nugets[0]).Path
$env:Path = $env:Path + ";" + (Split-Path $nuget)
}
return $nuget
}

Push-Location $path
try {
Write-Output "Loading Nuget Dependencies"
$nuget = Resolve-NuGet
BootStrap-Chewie
Write-Output "Nuget = $nuget"
if(Test-Path ".NugetFile") {
Write-Output "Loading chewie"
Import-Module "$pwd\chewie.psm1"
Write-Output "Running chewie"
Invoke-Chewie
} else {
$package_files = Get-ChildItem . -recurse -include packages.config
$package_files | % { & $nuget i $_ -OutputDirectory $install_to }
}
} finally { Pop-Location }
@@ -0,0 +1,62 @@
#
# Copyright (c) 2011-2012, Toji Project Contributors
#
# Dual-licensed under the Apache License, Version 2.0, and the Microsoft Public License (Ms-PL).
# See the file LICENSE.txt for details.
#

# The global settings are provided in the settings.ps1 file. If you
# want to override anything in it, you can use the overrides.ps1 to
# replace any property value used in any indcluded file. Remember that
# values provided on the command line will override all of these files below.
Include settings.ps1
#Include xunit.ps1
Include nunit.ps1
Include nuget.ps1
Include msbuild.ps1
Include assemblyinfo.ps1
Include overrides.ps1
#Include git.ps1

properties {
Write-Output "Loading build properties"
# Do not put any code in here. This method is invoked before all others
# and will not have access to any of your shared properties.
}

Task Default -depends Initialize, Compile, Test, Package
Task Release -depends Default
Task Deploy -depends Publish

Task Test {
$test_dlls = gci "$($build.dir)\*.Tests.dll"
Invoke-TestRunner $test_dlls
}

Task IntegrationTest -Depends Test {
$test_dlls = gci "$($build.dir)\*.IntegrationTests.dll"
Invoke-TestRunner $test_dlls
}

Task Initialize -Depends Clean, Bootstrap-NuGetPackages {
New-Item $release.dir -ItemType Directory | Out-Null
New-Item $build.dir -ItemType Directory | Out-Null
}

Task Compile -Depends Version-AssemblyInfo, Initialize, Invoke-MsBuild

Task Clean {
Remove-Item -Force -Recurse $build.dir -ErrorAction SilentlyContinue | Out-Null
Remove-Item -Force -Recurse $release.dir -ErrorAction SilentlyContinue | Out-Null
}

Task Publish -Depends Package {
Publish-NuGetPackage
}

Task Package -Depends Create-NuGetPackage {
}

Task ? -Description "Helper to display task info" {
Write-Documentation
}
@@ -0,0 +1,107 @@
#
# Copyright (c) 2011-2012, Chewie Project Contributors
#

$default_source = ""
$version_packages = $false

function version_packages
{
$script:version_packages = $true
}

function source
{
param(
[Parameter(Position=0,Mandatory=$true)]
[string] $source = $null
)

$script:default_source = $source
}

function script:FileExistsInPath
{
param (
[Parameter(Position=0,Mandatory=$true)]
[string] $fileName = $null
)

$path = Get-Childitem Env:Path
$found = $false
foreach ($folder in $path.Value.Split(";")) { if (Test-Path "$folder\$fileName") { $found = $true; break } }
Write-Output $found
}

function install_to
{
param(
[Parameter(Position=0,Mandatory=$true)]
[string] $path = $null
)

if(!(test-path $path))
{
if([System.IO.Path]::IsPathRooted($path))
{
$drive_letter = [System.IO.Path]::GetPathRoot($path)
$directory_name = $path.Replace($drive_letter, "")
new-item -path $drive_letter -name $directory_name -itemtype directory
}
else
{
new-item -path . -name $path -itemtype directory
}
}

push-location $path -stackname 'chewie_nuget'
}

function chew
{
[CmdletBinding()]
param (
[Parameter(Position=0,Mandatory=$true)]
[string] $name = $null,

[Parameter(Position=1,Mandatory=$false)]
[alias("v")]
[string] $version = "",

[Parameter(Position=2,Mandatory=$false)]
[alias("s")]
[string] $source = ""
)

$nuGetIsInPath = (FileExistsInPath "NuGet.exe") -or (FileExistsInPath "NuGet.bat")
$command = ""
if($nuGetIsInPath)
{
$command += "NuGet install"
if($script:version_packages -ne $true){$command += " -x"}

} else { $command += "install-package" }
$command += " $name"

if($version -ne "") { $command += " -v $version" }
if($source -eq "" -and $script:default_source -ne "") { $source = $script:default_source }
if($source -ne "") { $command += " -s $source" }

invoke-expression $command
}

function Invoke-Chewie
{
gc $pwd\.NugetFile | Foreach-Object { $block = [scriptblock]::Create($_.ToString()); % $block; }
if((get-location -stackname 'chewie_nuget').count -gt 0) { pop-location -stackname 'chewie_nuget' }
}

function Initialize-Chewie
{
if(!(test-path $pwd\.NugetFile))
{
new-item -path $pwd -name .NugetFile -itemtype file
add-content $pwd\.NugetFile "install_to 'lib'"
add-content $pwd\.NugetFile "chew 'machine.specifications'"
}
}
@@ -0,0 +1,28 @@
#
# Copyright (c) 2012, Toji Project Contributors
#
# Dual-licensed under the Apache License, Version 2.0, and the Microsoft Public License (Ms-PL).
# See the file LICENSE.txt for details.
#

properties {
Write-Output "Loading git properties"
$git = @{}
$git.file = @(Get-Command git)[0]
}

function Invoke-Git {
param(
[Parameter(Position=0,Mandatory=0)]
[string[]]$args = @()
)
if ($args.Length -le 0) {
Write-Output "No git arguments defined"
return
}
& $git.file $args
}

function Get-GitRevision {
([regex]"-\d{1,5}-").Match((Invoke-Git describe)).Value.Trim('-')
}
@@ -0,0 +1,24 @@
#
# Copyright (c) 2011-2012, Toji Project Contributors
#
# Dual-licensed under the Apache License, Version 2.0, and the Microsoft Public License (Ms-PL).
# See the file LICENSE.txt for details.
#

properties {
Write-Output "Loading MSBuild properties"
$msbuild = @{}
$msbuild.logfilename = "MSBuildOutput.txt"
$msbuild.logfilepath = $build.dir
$msbuild.max_cpu_count = [System.Environment]::ProcessorCount
$msbuild.build_in_parralel = $true
$msbuild.logger = "FileLogger,Microsoft.Build.Engine"
$msbuild.platform = "Any CPU"
}

Task Invoke-MsBuild {
$command = "msbuild /m:$($msbuild.max_cpu_count) /p:BuildInParralel=$($msbuild.build_in_parralel) `"/logger:$($msbuild.logger);logfile=$($msbuild.logfilepath)\$($msbuild.logfilename)`" /p:Configuration=`"$($build.configuration)`" /p:Platform=`"$($msbuild.platform)`" /p:OutDir=`"$($build.dir)`"\\ `"$($solution.file)`""
$message = "Error executing command: {0}"
$errorMessage = $message -f $command
exec { msbuild /m:"$($msbuild.max_cpu_count)" "/p:BuildInParralel=$($msbuild.build_in_parralel)" "/logger:$($msbuild.logger);logfile=$($msbuild.logfilepath)\$($msbuild.logfilename)" /p:Configuration="$($build.configuration)" /p:Platform="$($msbuild.platform)" /p:OutDir="$($build.dir)"\\ "$($solution.file)" } $errorMessage
}