Ejemplo n.º 1
0
 static int Main(string[] args)
 {
     // Exit code 3 for help output
     int retVal = 3;
     var sc = new SignCheck(args);
     if ((sc.Options != null) && (!sc.HasArgErrors))
     {
         retVal = sc.Run();
     }
     return retVal;
 }
Ejemplo n.º 2
0
        public override bool Execute()
        {
            Options options = new Options();

            options.EnableJarSignatureVerification = EnableJarSignatureVerification;
            options.EnableXmlSignatureVerification = EnableXmlSignatureVerification;
            options.ExclusionsFile   = ExclusionsFile;
            options.ExclusionsOutput = ExclusionsOutput;
            string[] filestatuses = FileStatus.Split(';', ',');
            options.FileStatus         = filestatuses;
            options.Recursive          = Recursive;
            options.TraverseSubFolders = Recursive;
            options.SkipTimestamp      = SkipTimestamp;
            options.VerifyStrongName   = VerifyStrongName;
            options.LogFile            = LogFile;
            options.ErrorLogFile       = ErrorLogFile;

            List <string> inputFiles = new List <string>();

            if (InputFiles != null)
            {
                ArtifactFolder = ArtifactFolder ?? Environment.CurrentDirectory;
                SearchOption fileSearchOptions = Recursive ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly;

                foreach (var checkFile in InputFiles.Select(s => s.ItemSpec).ToArray())
                {
                    if (Path.IsPathRooted(checkFile))
                    {
                        inputFiles.Add(checkFile);
                    }
                    else
                    {
                        var matchedFiles = Directory.GetFiles(ArtifactFolder, checkFile, fileSearchOptions);

                        if (matchedFiles.Length == 1)
                        {
                            inputFiles.Add(matchedFiles[0]);
                        }
                        else if (matchedFiles.Length == 0)
                        {
                            Log.LogError($"Unable to find file '{checkFile}' in folder '{ArtifactFolder}'.  Try specifying 'Recursive=true` to include subfolders");
                        }
                        else if (matchedFiles.Length > 1)
                        {
                            Log.LogError($"found multiple files matching pattern '{checkFile}'");
                            foreach (var file in matchedFiles)
                            {
                                Log.LogError($" - {file}");
                            }
                        }
                    }
                }
            }
            options.InputFiles = inputFiles.ToArray();

            if (Enum.TryParse <LogVerbosity>(Verbosity, out LogVerbosity verbosity))
            {
                options.Verbosity = verbosity;
            }

            var sc     = new SignCheck(options);
            int result = sc.Run();

            return(result == 0 && !Log.HasLoggedErrors);
        }