<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        <ProjectGuid>{2D69F2AB-D5D0-4344-84B5-EF6DB34A9BC9}</ProjectGuid>
        <OutputName>python</OutputName>
        <OutputSuffix></OutputSuffix>
        
        <DownloadUrlBase Condition="'$(DownloadUrlBase)' == ''">$(TARGET)</DownloadUrlBase>
        <DownloadUrlBase Condition="'$(DownloadUrlBase)' == ''">/srv/www.python.org/ftp/python</DownloadUrlBase>
        <IncludeDoc Condition="'$(IncludeDoc)' == ''">true</IncludeDoc>
        <BuildForRelease Condition="'$(BuildForRelease)' == ''">true</BuildForRelease>
        <DryRun Condition="'$(DryRun)' == ''">false</DryRun>
    </PropertyGroup>

    <Import Project="msi.props" />
    <Import Project="bundle\bundle.targets" />
    
    <PropertyGroup>
        <EXETarget>$(DownloadUrlBase.TrimEnd(`/`))/$(MajorVersionNumber).$(MinorVersionNumber).$(MicroVersionNumber)</EXETarget>
        <MSITarget>$(DownloadUrl.Replace(`{version}`, `$(MajorVersionNumber).$(MinorVersionNumber).$(MicroVersionNumber)`).Replace(`{arch}`, `$(ArchName)`).Replace(`{releasename}`, `$(ReleaseLevelName)`).Replace(`{msi}`, ``).TrimEnd(`/`))</MSITarget>
    </PropertyGroup>
    
    <ItemGroup>
        <File Include="$(OutputPath)\*.msi">
            <CopyTo>$(MSITarget)</CopyTo>
        </File>
        <File Include="$(OutputPath)\*.exe;$(OutputPath)\*.zip">
            <CopyTo>$(EXETarget)</CopyTo>
        </File>
        <File Include="$(PySourcePath)Doc\build\htmlhelp\python$(MajorVersionNumber)$(MinorVersionNumber)$(MicroVersionNumber)$(ReleaseLevelName).chm" Condition="$(IncludeDoc)">
            <CopyTo>$(EXETarget)</CopyTo>
        </File>
    </ItemGroup>
    
    <Target Name="_ValidateProperties">
        <Error Text="No value for Host provided" Condition="'$(Host)' == ''" />
        <Error Text="No value for User provided" Condition="'$(User)' == ''" />
        <Error Text="No path for PSCP provided" Condition="'$(PSCP)' == ''" />
        <Error Text="No path for PLINK provided" Condition="'$(PLINK)' == ''" />
    </Target>
    
    <Target Name="_RunGpg" Condition="'$(GPG)' != ''" Inputs="@(File)" Outputs="$(IntermediateOutputPath)\gpg\%(FileName)%(Extension).asc">
        <MakeDir Directories="$(IntermediateOutputPath)gpg" />
        <Delete Files="$(IntermediateOutputPath)\gpg\%(File.FileName)%(File.Extension).asc" Condition="Exists('$(IntermediateOutputPath)\gpg\%(File.FileName)%(File.Extension).asc')" />
        <Exec Command="&quot;$(GPG)&quot; -ba -o &quot;$(IntermediateOutputPath)\gpg\%(File.FileName)%(File.Extension).asc&quot; &quot;%(File.FullPath)&quot;"
              IgnoreExitCode="false" />
        <ItemGroup>
            <File Include="$(IntermediateOutputPath)\gpg\%(File.FileName)%(File.Extension).asc">
                <CopyTo>%(File.CopyTo)</CopyTo>
            </File>
        </ItemGroup>
    </Target>
    
    <Target Name="_Upload" Condition="!$(DryRun)">
        <Exec Command="&quot;$(PLINK)&quot; $(User)@$(Host) mkdir %(File.CopyTo) ^&amp;^&amp; chgrp downloads %(File.CopyTo) ^&amp;^&amp; chmod g-w,o+rx %(File.CopyTo)" ContinueOnError="true" />
        <Exec Command="&quot;$(PSCP)&quot; @(File,' ') $(User)@$(Host):%(File.CopyTo)" />
        <Exec Command="&quot;$(PLINK)&quot; $(User)@$(Host) chgrp downloads %(File.CopyTo)/*; chmod g-w,o+r %(File.CopyTo)/*" ContinueOnError="true" />
    </Target>

    <Target Name="_PrintNames" Condition="$(DryRun)">
        <Exec Command="echo &quot;$(PLINK)&quot; $(User)@$(Host) mkdir %(File.CopyTo) ^&amp;^&amp; chgrp downloads %(File.CopyTo) ^&amp;^&amp; chmod g-w,o+rx %(File.CopyTo)" />
        <Exec Command="echo &quot;$(PSCP)&quot; @(File,' ') $(User)@$(Host):%(File.CopyTo)" />
        <Exec Command="echo &quot;$(PLINK)&quot; $(User)@$(Host) chgrp downloads %(File.CopyTo)/*; chmod g-w,o+r %(File.CopyTo)/*" />
    </Target>
    
    <Target Name="_TestLayout">
        <ItemGroup>
            <WebInstaller Include="$(OutputPath)\*-webinstall.exe" />
            <WebInstaller>
                <SourceDir>$(TEMP)\%(Filename)_source</SourceDir>
                <SourceExe>$(TEMP)\%(Filename)_source\%(Filename)%(Extension)</SourceExe>
                <LayoutDir>$(TEMP)\%(Filename)_layout</LayoutDir>
                <LogDir>$(OutputPath)\%(Filename)_layoutlog</LogDir>
                <LogFile>$(OutputPath)\%(Filename)_layoutlog\%(Filename).log</LogFile>
            </WebInstaller>
        </ItemGroup>
        <Error Text="Could not find installer" Condition="@(WebInstaller) == ''" />
        <RemoveDir Directories="%(WebInstaller.SourceDir)" Condition="Exists('%(WebInstaller.SourceDir)')" />
        <RemoveDir Directories="%(WebInstaller.LayoutDir)" Condition="Exists('%(WebInstaller.LayoutDir)')" />
        <RemoveDir Directories="%(WebInstaller.LogDir)" Condition="Exists('%(WebInstaller.LogDir)')" />
        <MakeDir Directories="%(WebInstaller.SourceDir)" />
        <Copy SourceFiles="@(WebInstaller)" DestinationFiles="%(WebInstaller.SourceExe)" />
        <Exec Command="start &quot;Install test&quot; /wait &quot;%(WebInstaller.SourceExe)&quot; /layout &quot;%(WebInstaller.LayoutDir)&quot; /passive /log &quot;%(WebInstaller.LogFile)&quot;"
              IgnoreExitCode="false" />
        <RemoveDir Directories="%(WebInstaller.LayoutDir)" />
        <RemoveDir Directories="%(WebInstaller.SourceDir)" />
        <RemoveDir Directories="%(WebInstaller.LogDir)" />
        <Message Text="Successfully downloaded %(WebInstaller.Filename)%(WebInstaller.Extension) layout" Importance="high" />
    </Target>
    
    <Target Name="Upload" DependsOnTargets="_ValidateProperties;_RunGpg;_PrintNames;_Upload" />
    <Target Name="Test" DependsOnTargets="_TestLayout" />
    
    <Target Name="Purge">
        <Error Condition="!Exists('$(PythonExe)')" Text="No Python executable available at $(PythonExe)" />
        <Exec Command="echo &quot;$(PythonExe)&quot; purge.py $(PythonVersion)" Condition="$(DryRun)" />
        <Exec Command="&quot;$(PythonExe)&quot; purge.py $(PythonVersion)" Condition="!$(DryRun)" />
        <Message Text="Purged uploaded files" Importance="high" />
    </Target>
    
    <Target Name="ShowHashes">
        <ItemGroup>
            <UserFiles Include="@(File)" Condition="'%(File.CopyTo)' == '$(EXETarget)'" />
        </ItemGroup>
        
        <Error Text="No files generated" Condition="@(UserFiles) == ''" />
        <Exec Command="&quot;$(PythonExe)&quot; generate_md5.py @(UserFiles->'&quot;%(FullPath)&quot;',' ')" />
    </Target>
    
    <Target Name="Build">
        <Error Text="This script should be invoked using uploadrelease.bat." />
    </Target>
</Project>
