Skip to content

Commit 8d55ed5

Browse files
authored
Merge pull request #2 from NosCoreIO/Fix
Fix
2 parents 65182b1 + 5e65682 commit 8d55ed5

File tree

4 files changed

+24
-7
lines changed

4 files changed

+24
-7
lines changed

src/NosCore.ParserInputGenerator.Launcher/Worker.cs

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
using System.Linq;
33
using System.Threading;
44
using System.Threading.Tasks;
5+
using ICSharpCode.SharpZipLib.BZip2;
6+
using ICSharpCode.SharpZipLib.GZip;
7+
using ICSharpCode.SharpZipLib.Tar;
58
using Microsoft.Extensions.Hosting;
69
using Microsoft.Extensions.Logging;
710
using NosCore.ParserInputGenerator.Downloader;
@@ -60,16 +63,30 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken)
6063
// ignored as header is not important
6164
}
6265
var manifest = await _client.DownloadManifest();
63-
var fileslist = _parserInputFiles.Select(o => $"NostaleData\\{o}").ToList();
66+
var fileslist = _parserInputFiles.Select(o => $"NostaleData{Path.DirectorySeparatorChar}{o}").ToList();
6467
manifest.Entries = manifest.Entries.Where(s => fileslist.Contains(s.File)).ToArray();
6568
await _client.DownloadClientAsync(manifest);
6669
foreach (var file in fileslist)
6770
{
6871
var rename = file.Contains("NScliData");
69-
var dest = file.Contains("NStcData") ? ".\\output\\parser\\maps\\" : ".\\output\\parser\\";
70-
var fileInfo = new FileInfo($".\\output\\{file}");
72+
var dest = file.Contains("NStcData") ? $".{Path.DirectorySeparatorChar}output{Path.DirectorySeparatorChar}parser{Path.DirectorySeparatorChar}maps{Path.DirectorySeparatorChar}" : $".{Path.DirectorySeparatorChar}output{Path.DirectorySeparatorChar}parser{Path.DirectorySeparatorChar}";
73+
var fileInfo = new FileInfo($".{Path.DirectorySeparatorChar}output{Path.DirectorySeparatorChar}{file}");
7174
await _extractor.ExtractAsync(fileInfo, dest, rename);
7275
}
76+
var directoryOfFilesToBeTarred = new DirectoryInfo(".{Path.DirectorySeparatorChar}output{Path.DirectorySeparatorChar}parser");
77+
var filesInDirectory = directoryOfFilesToBeTarred.GetFiles("*.*", SearchOption.AllDirectories);
78+
var tarArchiveName = $".{Path.DirectorySeparatorChar}output{Path.DirectorySeparatorChar}parser-input-files.tar.bz2";
79+
if (File.Exists(tarArchiveName))
80+
{
81+
File.Delete(tarArchiveName);
82+
}
83+
await using Stream targetStream = new BZip2OutputStream(File.Create(tarArchiveName));
84+
using var tarArchive = TarArchive.CreateOutputTarArchive(targetStream, TarBuffer.DefaultBlockFactor);
85+
foreach (var fileToBeTarred in filesInDirectory)
86+
{
87+
var entry = TarEntry.CreateEntryFromFile(fileToBeTarred.FullName);
88+
tarArchive.WriteEntry(entry, true);
89+
}
7390
_logger.LogInformation(LogLanguage.Instance.GetMessageFromKey(LogLanguageKey.PARSER_INPUT_GENERATED));
7491
}
7592
}

src/NosCore.ParserInputGenerator/Downloader/ClientDownloader.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,10 @@ async Task Download(Entry entry)
4848

4949
if (entry.Folder)
5050
{
51-
Directory.CreateDirectory($".\\output\\{entry.File}");
51+
Directory.CreateDirectory($".{Path.DirectorySeparatorChar}output{Path.DirectorySeparatorChar}{entry.File}");
5252
return;
5353
}
54-
var file = $".\\output\\{entry.File}";
54+
var file = $".{Path.DirectorySeparatorChar}output{Path.DirectorySeparatorChar}{entry.File}";
5555
if (File.Exists(file))
5656
{
5757
var fop = File.OpenRead(file);

src/NosCore.ParserInputGenerator/Extractor/Extractor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public Extractor(ILogger<Extractor> logger)
2121

2222
public Task ExtractAsync(FileInfo file, string dest) => ExtractAsync(file, dest, false);
2323

24-
public Task ExtractAsync(FileInfo file) => ExtractAsync(file, ".\\output\\");
24+
public Task ExtractAsync(FileInfo file) => ExtractAsync(file, $".{Path.DirectorySeparatorChar}output{Path.DirectorySeparatorChar}");
2525

2626
public async Task ExtractAsync(FileInfo nosFile, string directory, bool rename)
2727
{

src/NosCore.ParserInputGenerator/NosCore.ParserInputGenerator.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<RepositoryUrl>https://github.com/NosCoreIO/NosCore.ParserInputGenerator.git</RepositoryUrl>
1313
<PackageIconUrl></PackageIconUrl>
1414
<PackageTags>nostale, noscore, nostale private server source, nostale emulator</PackageTags>
15-
<Version>1.0.1</Version>
15+
<Version>1.1.0</Version>
1616
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
1717
<Description>NosCore's Parser InputGenerator</Description>
1818
<PackageLicenseExpression></PackageLicenseExpression>

0 commit comments

Comments
 (0)