ZeroInstall.Publish.EntryPoints.PosixBinary.Analyze C# (CSharp) Method

Analyze() private method

private Analyze ( DirectoryInfo baseDirectory, FileInfo file ) : bool
baseDirectory System.IO.DirectoryInfo
file System.IO.FileInfo
return bool
        internal override bool Analyze(DirectoryInfo baseDirectory, FileInfo file)
        {
            if (!base.Analyze(baseDirectory, file)) return false;
            if (!HasMagicBytes(file)) return false;

            Name = file.Name;
            Architecture = new Architecture(OS.Linux, Cpu.All);

            IELF elfData = null;
            try
            {
                if (ELFReader.TryLoad(file.FullName, out elfData))
                {
                    if (elfData.Class == Class.NotELF || elfData.Type != FileType.Executable) return false;

                    Architecture = new Architecture(OS.Linux, GetCpu(elfData));
                }
            }
            catch (NullReferenceException)
            {}
            finally
            {
                elfData?.Dispose();
            }

            return true;
        }

Usage Example

Exemplo n.º 1
0
 public void NotExecutable()
 {
     var candidate = new PosixBinary();
     Assert.IsFalse(candidate.Analyze(
         baseDirectory: Directory,
         file: Deploy(Reference32, xbit: false)));
 }
All Usage Examples Of ZeroInstall.Publish.EntryPoints.PosixBinary::Analyze