Created
May 26, 2013 00:11
-
-
Save chefkoch/5651278 to your computer and use it in GitHub Desktop.
This is a msbuild file for downloading the TransifexCliente (tx.exe) on demand
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="utf-8"?> | |
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | |
<PropertyGroup> | |
<TransifexClientExePath Condition=" '$(TransifexClientExePath)' == '' ">$(MSBuildThisFileDirectory)tx.exe</TransifexClientExePath> | |
</PropertyGroup> | |
<Target Name="CheckPrerequisites"> | |
<SetEnvironmentVariable EnvKey="VisualStudioVersion" EnvValue="$(VisualStudioVersion)" Condition=" '$(VisualStudioVersion)' != '' AND '$(OS)' == 'Windows_NT' " /> | |
<!-- | |
Take advantage of MsBuild's build dependency tracking to make sure that we only ever download nuget.exe once. | |
This effectively acts as a lock that makes sure that the download operation will only happen once and all | |
parallel builds will have to wait for it to complete. | |
--> | |
<MsBuild Targets="_DownloadTransifexClient" Projects="$(MSBuildThisFileFullPath)" Properties="Configuration=NOT_IMPORTANT" /> | |
</Target> | |
<Target Name="_DownloadTransifexClient"> | |
<DownloadTransifexClient OutputFilename="$(TransifexClientExePath)" Condition="!Exists('$(TransifexClientExePath)')" /> | |
</Target> | |
<UsingTask TaskName="DownloadTransifexClient" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll"> | |
<ParameterGroup> | |
<OutputFilename ParameterType="System.String" Required="true" /> | |
</ParameterGroup> | |
<Task> | |
<Reference Include="System.Core" /> | |
<Using Namespace="System" /> | |
<Using Namespace="System.IO" /> | |
<Using Namespace="System.Net" /> | |
<Using Namespace="Microsoft.Build.Framework" /> | |
<Using Namespace="Microsoft.Build.Utilities" /> | |
<Code Type="Fragment" Language="cs"> | |
<![CDATA[ | |
try { | |
OutputFilename = Path.GetFullPath(OutputFilename); | |
Log.LogMessage("Downloading version 0.9 of tx.exe..."); | |
WebClient webClient = new WebClient(); | |
webClient.DownloadFile("http://files.transifex.com/transifex-client/0.9/tx.exe", OutputFilename); | |
return true; | |
} | |
catch (Exception ex) { | |
Log.LogErrorFromException(ex); | |
return false; | |
} | |
]]> | |
</Code> | |
</Task> | |
</UsingTask> | |
<UsingTask TaskName="SetEnvironmentVariable" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll"> | |
<ParameterGroup> | |
<EnvKey ParameterType="System.String" Required="true" /> | |
<EnvValue ParameterType="System.String" Required="true" /> | |
</ParameterGroup> | |
<Task> | |
<Using Namespace="System" /> | |
<Code Type="Fragment" Language="cs"> | |
<![CDATA[ | |
try { | |
Environment.SetEnvironmentVariable(EnvKey, EnvValue, System.EnvironmentVariableTarget.Process); | |
} | |
catch { | |
} | |
]]> | |
</Code> | |
</Task> | |
</UsingTask> | |
</Project> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment