forked from mia/Aegisub
Cut all the stuff from ICU's data file that we don't need
This commit is contained in:
parent
48921c35e0
commit
bec9483429
2 changed files with 44 additions and 6 deletions
|
@ -95,6 +95,14 @@ type GitProject() =
|
||||||
this.Log.LogErrorFromException e
|
this.Log.LogErrorFromException e
|
||||||
false
|
false
|
||||||
|
|
||||||
|
let downloadArchive (url : String) unpackDest =
|
||||||
|
use wc = new Net.WebClient()
|
||||||
|
use downloadStream = wc.OpenRead url
|
||||||
|
use gzStream = new ICSharpCode.SharpZipLib.GZip.GZipInputStream(downloadStream)
|
||||||
|
use tarStream = new ICSharpCode.SharpZipLib.Tar.TarInputStream(gzStream)
|
||||||
|
use tarArchive = ICSharpCode.SharpZipLib.Tar.TarArchive.CreateInputTarArchive tarStream
|
||||||
|
tarArchive.ExtractContents unpackDest
|
||||||
|
|
||||||
type TarballProject() =
|
type TarballProject() =
|
||||||
inherit Task()
|
inherit Task()
|
||||||
|
|
||||||
|
@ -111,13 +119,8 @@ type TarballProject() =
|
||||||
try IO.Directory.Delete(directory, true) with | :? IO.IOException -> ()
|
try IO.Directory.Delete(directory, true) with | :? IO.IOException -> ()
|
||||||
|
|
||||||
this.Log.LogMessage ("Downloading {0} {1} from {2}", project.ItemSpec, version, project.GetMetadata "Url")
|
this.Log.LogMessage ("Downloading {0} {1} from {2}", project.ItemSpec, version, project.GetMetadata "Url")
|
||||||
use wc = new Net.WebClient()
|
downloadArchive (project.GetMetadata "Url") (sprintf @"%s\.." directory)
|
||||||
use downloadStream = project.GetMetadata "Url" |> wc.OpenRead
|
|
||||||
use gzStream = new ICSharpCode.SharpZipLib.GZip.GZipInputStream(downloadStream)
|
|
||||||
use tarStream = new ICSharpCode.SharpZipLib.Tar.TarInputStream(gzStream)
|
|
||||||
use tarArchive = ICSharpCode.SharpZipLib.Tar.TarArchive.CreateInputTarArchive tarStream
|
|
||||||
|
|
||||||
sprintf @"%s\.." directory |> tarArchive.ExtractContents
|
|
||||||
let dirname = project.GetMetadata "DirName"
|
let dirname = project.GetMetadata "DirName"
|
||||||
if not <| String.IsNullOrWhiteSpace dirname
|
if not <| String.IsNullOrWhiteSpace dirname
|
||||||
then IO.Directory.Move(dirname |> sprintf @"%s\..\%s" directory, directory)
|
then IO.Directory.Move(dirname |> sprintf @"%s\..\%s" directory, directory)
|
||||||
|
@ -138,3 +141,28 @@ type TarballProject() =
|
||||||
with e ->
|
with e ->
|
||||||
this.Log.LogErrorFromException e
|
this.Log.LogErrorFromException e
|
||||||
false
|
false
|
||||||
|
|
||||||
|
type DownloadTgzFile() =
|
||||||
|
inherit Task()
|
||||||
|
|
||||||
|
member val Url = "" with get, set
|
||||||
|
member val Destination = "" with get, set
|
||||||
|
member val OutputFile = "" with get, set
|
||||||
|
member val Hash = "" with get, set
|
||||||
|
|
||||||
|
override this.Execute() =
|
||||||
|
let needsDownload =
|
||||||
|
try
|
||||||
|
use fs = IO.File.OpenRead this.OutputFile
|
||||||
|
let sha = new Security.Cryptography.SHA1Managed ()
|
||||||
|
let hash = sha.ComputeHash fs
|
||||||
|
BitConverter.ToString(hash).Replace("-", "") <> this.Hash
|
||||||
|
with | :? IO.IOException -> true
|
||||||
|
|
||||||
|
try
|
||||||
|
if needsDownload
|
||||||
|
then downloadArchive this.Url this.Destination
|
||||||
|
true
|
||||||
|
with e ->
|
||||||
|
this.Log.LogErrorFromException e
|
||||||
|
false
|
||||||
|
|
|
@ -64,6 +64,7 @@ Aegisub Project http://www.aegisub.org/
|
||||||
<Import Project="$(MSBuildThisFileDirectory)\..\aegisub.props" />
|
<Import Project="$(MSBuildThisFileDirectory)\..\aegisub.props" />
|
||||||
<UsingTask TaskName="GitProject" AssemblyFile="$(AegisubBinaryDir)BuildTasks.dll" />
|
<UsingTask TaskName="GitProject" AssemblyFile="$(AegisubBinaryDir)BuildTasks.dll" />
|
||||||
<UsingTask TaskName="TarballProject" AssemblyFile="$(AegisubBinaryDir)BuildTasks.dll" />
|
<UsingTask TaskName="TarballProject" AssemblyFile="$(AegisubBinaryDir)BuildTasks.dll" />
|
||||||
|
<UsingTask TaskName="DownloadTgzFile" AssemblyFile="$(AegisubBinaryDir)BuildTasks.dll" />
|
||||||
|
|
||||||
<Target Name="Build">
|
<Target Name="Build">
|
||||||
<GitProject
|
<GitProject
|
||||||
|
@ -73,5 +74,14 @@ Aegisub Project http://www.aegisub.org/
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<TarballProject Projects="@(TarballProject)" Root="$(MSBuildThisFileDirectory)..\..\..\deps" />
|
<TarballProject Projects="@(TarballProject)" Root="$(MSBuildThisFileDirectory)..\..\..\deps" />
|
||||||
|
|
||||||
|
<!-- Generated with http://apps.icu-project.org/datacustom/ -->
|
||||||
|
<!-- Includes Break Iterator and Collator data only -->
|
||||||
|
<DownloadTgzFile
|
||||||
|
Url="http://www.aegisub.org/~plorkyeran/icudt50l.dat.tgz"
|
||||||
|
Destination="$(MSBuildThisFileDirectory)..\..\..\deps\icu\source\data\in"
|
||||||
|
OutputFile="$(MSBuildThisFileDirectory)..\..\..\deps\icu\source\data\in\icudt50l.dat"
|
||||||
|
Hash="593aa12dc0413163b803582d22197c46804048c8"
|
||||||
|
/>
|
||||||
</Target>
|
</Target>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
Loading…
Reference in a new issue