示例#1
0
        public int Run(AbsoluteUriOptions absoluteUriOptions)
        {
            try
            {
                IEnumerable <AbsoluteUriFile> absoluteUriFiles = GetAbsoluteUriFiles(absoluteUriOptions);

                if (!ValidateOptions(absoluteUriOptions, absoluteUriFiles))
                {
                    return(FAILURE);
                }

                if (!absoluteUriOptions.Inline)
                {
                    _fileSystem.CreateDirectory(absoluteUriOptions.OutputFolderPath);
                }

                Formatting formatting = absoluteUriOptions.PrettyPrint
                    ? Formatting.Indented
                    : Formatting.None;

                foreach (AbsoluteUriFile absoluteUriFile in absoluteUriFiles)
                {
                    absoluteUriFile.Log = absoluteUriFile.Log.MakeUrisAbsolute();

                    WriteSarifFile(_fileSystem, absoluteUriFile.Log, absoluteUriFile.OutputFilePath, formatting);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
                return(FAILURE);
            }

            return(SUCCESS);
        }
        public int Run(AbsoluteUriOptions absoluteUriOptions)
        {
            try
            {
                var sarifFiles = GetSarifFiles(absoluteUriOptions);

                Directory.CreateDirectory(absoluteUriOptions.OutputFolderPath);
                foreach (var sarifLog in sarifFiles)
                {
                    sarifLog.Log = sarifLog.Log.MakeUrisAbsolute();

                    // Write output to file.
                    string outputName = sarifLog.GetOutputFileName(absoluteUriOptions);
                    var    formatting = absoluteUriOptions.PrettyPrint
                        ? Formatting.Indented
                        : Formatting.None;

                    FileHelpers.WriteSarifFile(_fileSystem, sarifLog.Log, outputName, formatting);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
                return(1);
            }

            return(0);
        }
        public int Run(AbsoluteUriOptions options)
        {
            try
            {
                IEnumerable <FileProcessingData> filesData = GetFilesToProcess(options);

                if (!ValidateOptions(options, filesData))
                {
                    return(FAILURE);
                }

                foreach (FileProcessingData fileData in filesData)
                {
                    fileData.SarifLog = fileData.SarifLog.MakeUrisAbsolute();

                    WriteSarifFile(FileSystem,
                                   fileData.SarifLog,
                                   fileData.OutputFilePath,
                                   options.PrettyPrint);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
                return(FAILURE);
            }

            return(SUCCESS);
        }
示例#4
0
        private bool ValidateOptions(AbsoluteUriOptions absoluteUriOptions, IEnumerable <AbsoluteUriFile> absoluteUriFiles)
        {
            bool valid = true;

            valid &= absoluteUriOptions.ValidateOutputOptions();

            valid &= DriverUtilities.ReportWhetherOutputFilesCanBeCreated(absoluteUriFiles.Select(f => f.OutputFilePath), absoluteUriOptions.Force, _fileSystem);

            return(valid);
        }
示例#5
0
        internal string GetOutputFilePath(string inputFilePath, AbsoluteUriOptions absoluteUriOptions)
        {
            if (absoluteUriOptions.Inline)
            {
                return(inputFilePath);
            }

            return(!string.IsNullOrEmpty(absoluteUriOptions.OutputFolderPath)
                ? Path.GetFullPath(absoluteUriOptions.OutputFolderPath) + Path.DirectorySeparatorChar + Path.GetFileNameWithoutExtension(inputFilePath) + "-absolute.sarif"
                : Path.GetDirectoryName(inputFilePath) + Path.DirectorySeparatorChar + Path.GetFileNameWithoutExtension(inputFilePath) + "-absolute.sarif");
        }
        private IEnumerable <AbsoluteUriFile> GetSarifFiles(AbsoluteUriOptions absoluteUriOptions)
        {
            // Get files names first, as we may write more sarif logs to the same directory as we rebase them.
            HashSet <string> fileNames = FileHelpers.CreateTargetsSet(absoluteUriOptions.TargetFileSpecifiers, absoluteUriOptions.Recurse);

            foreach (var file in fileNames)
            {
                yield return(new AbsoluteUriFile()
                {
                    FileName = file, Log = FileHelpers.ReadSarifFile <SarifLog>(_fileSystem, file)
                });
            }
        }
示例#7
0
        private IEnumerable <AbsoluteUriFile> GetAbsoluteUriFiles(AbsoluteUriOptions absoluteUriOptions)
        {
            // Get files names first, as we may write more sarif logs to the same directory as we rebase them.
            HashSet <string> inputFilePaths = CreateTargetsSet(absoluteUriOptions.TargetFileSpecifiers, absoluteUriOptions.Recurse, _fileSystem);

            foreach (string inputFilePath in inputFilePaths)
            {
                yield return(new AbsoluteUriFile
                {
                    InputFilePath = inputFilePath,
                    OutputFilePath = GetOutputFilePath(inputFilePath, absoluteUriOptions),
                    Log = ReadSarifFile <SarifLog>(_fileSystem, inputFilePath)
                });
            }
        }
 internal string GetOutputFileName(AbsoluteUriOptions mergeOptions)
 {
     return(!string.IsNullOrEmpty(mergeOptions.OutputFolderPath)
         ? Path.GetFullPath(mergeOptions.OutputFolderPath) + Path.DirectorySeparatorChar + Path.GetFileNameWithoutExtension(FileName) + "-absolute.sarif"
         : Path.GetDirectoryName(FileName) + Path.DirectorySeparatorChar + Path.GetFileNameWithoutExtension(FileName) + "-absolute.sarif");
 }
 public void ConsumeEnvVarsAndInterpretOptions(AbsoluteUriOptions absoluteUriOptions)
 {
     ConsumeEnvVarsAndInterpretOptions((MultipleFilesOptionsBase)absoluteUriOptions);
 }