public void BeforeAddEntry(FusePackConfig config, IPackageEntry entry) { var processEntry = entry as FusionProcessEntry; var processConfigEntry = entry as FusionProcessConfigEntry; var metaEntry = entry as FusionMetaEntry; if (processEntry != null) { processEntry.Name = config.Id; } if (processConfigEntry != null) { processConfigEntry.Name = $"{config.Id}.config"; } if (metaEntry != null) { metaEntry.SetInfo(FusionMetaEntry.ExecutableInfoKey, config.Id); metaEntry.SetInfo(ZappVariables.StartupAssemblyNameFusionInfoKey, "SuperExitingApp1"); metaEntry.SetInfo(ZappVariables.TeardownAssemblyNameFusionInfoKey, "SuperExitingApp1"); metaEntry.SetInfo(ZappVariables.TeardownTypeNameFusionInfoKey, "SuperExitingClass1"); metaEntry.SetInfo(ZappVariables.TeardownMethodNameFusionInfoKey, "Teardown"); } }
public byte[] ExtractEntry(IPackageEntry entry) { using (var sr = new BinaryReader(OpenStream(entry))) { return sr.ReadBytes((int) sr.BaseStream.Length); } }
public byte[] ExtractEntry(IPackageEntry entry) { using (var sr = new BinaryReader(OpenStream(entry))) { return(sr.ReadBytes((int)sr.BaseStream.Length)); } }
private string ReadEntryContent(IPackageEntry entry) { using (var stream = entry.Open()) using (var reader = new StreamReader(stream)) { return(reader.ReadToEnd()); } }
public InlinePackageFile(IPackage package, string path) { _package = package; _entry = package.GetEntry(path); FilePath = path; _files = new HashSet <string>(_package.GetFiles(FilePath)); _folders = new HashSet <string>(_package.GetDirectories(FilePath)); }
public Stream OpenStream(IPackageEntry entry) { var pe = entry as VpkEntry; if (pe == null) { throw new ArgumentException("This package is only compatible with VpkEntry objects."); } return(new BufferedStream(new VpkEntryStream(pe, this))); }
public Stream OpenStream(IPackageEntry entry) { var pe = entry as ZipEntry; if (pe == null) { throw new ArgumentException("This package is only compatible with ZipEntry objects."); } return(pe.Entry.GetStream(OpenFile(PackageFile))); }
public Stream OpenStream(IPackageEntry entry) { var pe = entry as WadEntry; if (pe == null) { throw new ArgumentException("This package is only compatible with WadEntry objects."); } return(new WadImageStream(pe, this)); }
private void SaveEntryOnFusion( IFusion fusion, IPackageEntry entry, FusePackConfig fusionConfig) { foreach (var filter in fusionFilters) { filter.BeforeAddEntry(fusionConfig, entry); } fusion.AddEntry(entry); }
/// <summary> /// Adds an entry to the fusion package. /// </summary> /// <param name="entry">Entry to add.</param> /// <exception cref="ArgumentNullException">Throw when <paramref name="entry"/> is not set.</exception> /// <inheritdoc /> public void AddEntry(IPackageEntry entry) { EnsureArg.IsNotNull(entry, nameof(entry)); var newEntry = archive.CreateEntry(entry.Name); using (var entryStream = entry.Open()) using (var newEntryStream = newEntry.Open()) { entryStream.CopyTo(newEntryStream); } }
public Stream OpenStream(IPackageEntry entry) { var pe = entry as PakEntry; if (pe == null) { throw new ArgumentException("This package is only compatible with PakEntry objects."); } return(new BufferedStream(new SubStream(OpenFile(PackageFile), pe.Offset, pe.Length) { CloseParentOnDispose = true })); }
private IBinaryInfo BuildBinaryInfo(IList <IPackageEntry> fileInfos, IPackageEntry binaryFileInfo) { var binaryInfo = new BinaryInfo(); binaryInfo.Name = Path.GetFileNameWithoutExtension(binaryFileInfo.FullPath); binaryInfo.Type = Path.GetExtension(binaryFileInfo.FullPath).Substring(1); binaryInfo.File = binaryFileInfo; using (var stream = binaryFileInfo.GetStream()) { binaryInfo.Hash = binaryStoreManager.ReadBinaryHash(stream); stream.Seek(0, SeekOrigin.Begin); binaryInfo.SymbolHash = binaryStoreManager.ReadPdbHash(stream); } string symbolName = Path.ChangeExtension(binaryFileInfo.FullPath, "pdb"); var symbolFileInfo = fileInfos.SingleOrDefault(s => s.FullPath == symbolName); if (symbolFileInfo != null) { var symbolInfo = new SymbolInfo(); symbolInfo.Type = Path.GetExtension(symbolFileInfo.FullPath).Substring(1); symbolInfo.File = symbolFileInfo; using (var stream = symbolFileInfo.GetStream()) symbolInfo.Hash = symbolStoreManager.ReadHash(stream); symbolInfo.SourceInfos = sourceDiscover.FindSources(fileInfos, symbolInfo); binaryInfo.SymbolInfo = symbolInfo; } string documentationName = Path.ChangeExtension(binaryFileInfo.FullPath, "xml"); var documentationFileInfo = fileInfos.SingleOrDefault(s => s.FullPath == documentationName); if (documentationFileInfo != null) { var documentationInfo = new DocumentationInfo(); documentationInfo.Type = Path.GetExtension(documentationFileInfo.FullPath).Substring(1); documentationInfo.File = documentationFileInfo; binaryInfo.DocumentationInfo = documentationInfo; } return(binaryInfo); }
private IBinaryInfo BuildBinaryInfo(IAddInfo addInfo, IList<IPackageEntry> fileInfos, IPackageEntry binaryFileInfo) { var binaryInfo = new BinaryInfo(addInfo); binaryInfo.Name = Path.GetFileNameWithoutExtension(binaryFileInfo.FullPath); binaryInfo.Type = Path.GetExtension(binaryFileInfo.FullPath).Substring(1); binaryInfo.File = binaryFileInfo; using (var stream = binaryFileInfo.Stream) { binaryInfo.Hash = binaryStoreManager.ReadBinaryHash(stream); stream.Seek(0, SeekOrigin.Begin); binaryInfo.SymbolHash = binaryStoreManager.ReadPdbHash(stream); } string symbolName = Path.ChangeExtension(binaryFileInfo.FullPath, "pdb"); var symbolFileInfo = fileInfos.SingleOrDefault(s => s.FullPath == symbolName); if (symbolFileInfo != null) { var symbolInfo = new SymbolInfo(binaryInfo); symbolInfo.Type = Path.GetExtension(symbolFileInfo.FullPath).Substring(1); symbolInfo.File = symbolFileInfo; using (var stream = symbolFileInfo.Stream) { symbolInfo.Hash = symbolStoreManager.ReadHash(stream); } symbolInfo.SourceInfos = sourceDiscover.FindSources(fileInfos, binaryInfo, symbolInfo).OrderBy(s => s.KeyPath).ToArray(); binaryInfo.SymbolInfo = symbolInfo; } string documentationName = Path.ChangeExtension(binaryFileInfo.FullPath, "xml"); var documentationFileInfo = fileInfos.SingleOrDefault(s => s.FullPath == documentationName); if (documentationFileInfo != null) { var documentationInfo = new DocumentationInfo(binaryInfo); documentationInfo.Type = Path.GetExtension(documentationFileInfo.FullPath).Substring(1); documentationInfo.File = documentationFileInfo; binaryInfo.DocumentationInfo = documentationInfo; } return binaryInfo; }
public InlinePackageFile(string fileName) { switch (Path.GetExtension(fileName)) { case ".pak": _package = new PakPackage(new FileInfo(fileName)); break; case ".vpk": _package = new VpkDirectory(new FileInfo(fileName)); break; default: throw new ArgumentException("This file format is not a valid inline package file."); } FilePath = ""; _entry = null; _files = new HashSet <string>(_package.GetFiles(FilePath)); _folders = new HashSet <string>(_package.GetDirectories(FilePath)); }
public TransformingWrapperPackageEntry(IPackageEntry packageEntry, ITransformation transformation) { this.packageEntry = packageEntry; this.transformation = transformation; }
public Stream OpenStream(IPackageEntry entry) { var pe = entry as VpkEntry; if (pe == null) throw new ArgumentException("This package is only compatible with VpkEntry objects."); return new BufferedStream(new VpkEntryStream(pe, this)); }
public TransformingWrapperPackageEntry(IPackageEntry packageEntry, ITransformation transformation) { this.packageEntry = packageEntry; this.transformation = transformation; }
public Stream OpenStream(IPackageEntry entry) { var pe = entry as PakEntry; if (pe == null) throw new ArgumentException("This package is only compatible with PakEntry objects."); return new BufferedStream(new SubStream(OpenFile(PackageFile), pe.Offset, pe.Length) { CloseParentOnDispose = true }); }
public Stream OpenStream(IPackageEntry entry) { var pe = entry as WadEntry; if (pe == null) throw new ArgumentException("This package is only compatible with WadEntry objects."); return new WadImageStream(pe, this); }