Example #1
0
 protected override void InnerRun(HashSet<Option> options, string[] args)
 {
     foreach (var file in args)
     {
         if (file == null)
             continue;
         Project project;
         if (IsNotCsproj(file, out project))
         {
             _console.Error.WriteLine(file + " is not a valid csproj. Ignored");
             continue;
         }
         var directory = Path.GetDirectoryName(file);
         var sourceDumper = new SourceDumper(directory, options);
         var projectItems = project.GetItems("Compile").Select(x => x.EvaluatedInclude);
         var items = sourceDumper.Dump(projectItems);
         var fileName = Path.GetFileNameWithoutExtension(file);
         var newFile = fileName + ".dll.sources";
         using (
             var writer = (options.Contains(SourceDumperOptions.OutputFile))
                 ? _factory.CreateFileWriter(Path.Combine(directory, newFile))
                 : _factory.CreateConsoleWriter())
         {
             foreach (var item in items)
             {
                 writer.WriteLine(item);
             }
         }
     }
     Exit(0);
 }
Example #2
0
 public void ExceptionTest()
 {
     var unixPath =
         @"/usr/local/teamcity-agent/work/6c86e2555ed64afc/Lx.Tools/Lx.Tools.Projects/Lx.Tools.Projects.Tests/bin/Debug";
     var winPath =
         @"C:\usr\local\teamcity-agent\work\6c86e2555ed64afc\Lx.Tools\Lx.Tools.Projects\Lx.Tools.Projects.Tests\bin\Debug\..\..\Lx.Tools.Projects.Tests.csproj";
     var dumper = new SourceDumper(unixPath, new HashSet<Option> {SourceDumperOptions.RelativePaths});
     var res = dumper.Dump(new List<string> {winPath}).ToArray();
     Assert.IsNotNull(res);
     Assert.AreEqual(1, res.Count());
     Assert.AreEqual(winPath, res.FirstOrDefault());
 }
Example #3
0
 public void TestWinPaths()
 {
     var dumper = new SourceDumper(_curDir, new HashSet<Option> {SourceDumperOptions.WindowsPaths});
     var result =
         dumper.Dump(new List<string> {@"..\winfile.cs", "../unixfile.cs", _windowsRooted, _unixRooted}).ToList();
     Assert.IsNotNull(result);
     Assert.IsNotEmpty(result);
     Assert.AreEqual(@"..\winfile.cs", result[0]);
     Assert.AreEqual(@"..\unixfile.cs", result[1]);
     Assert.AreEqual(_windowsRooted, result[2]);
     Assert.AreEqual(_unixRooted.Replace('/', '\\'), result[3]);
 }
Example #4
0
        public void TestRelativePathsOnWindows()
        {
            var winRelative = @"..\..\Lx.csproj";
            var winRooted = Path.Combine(_windowsRooted, winRelative);

            var dumper = new SourceDumper(_curDir, new HashSet<Option> {SourceDumperOptions.RelativePaths});
            var result = dumper.Dump(new List<string> {winRelative, winRooted}).ToList();

            Assert.IsNotNull(result);
            Assert.IsNotEmpty(result);
            Assert.AreEqual(2, result.Count);
            Assert.AreEqual(winRelative.Replace('\\', Path.DirectorySeparatorChar), result[0], "1: For " + winRelative);
            Assert.AreEqual(winRelative.Replace('\\', Path.DirectorySeparatorChar), result[1], "2: For " + winRooted);
        }
Example #5
0
        public void TestRelativePathsOnUnix()
        {
            var unixRelative = "../../Lx.csproj";
            var unixRooted = Path.Combine(_unixRooted, unixRelative);

            var dumper = new SourceDumper(_unixRooted, new HashSet<Option> {SourceDumperOptions.RelativePaths});
            var result = dumper.Dump(new List<string> {unixRelative, unixRooted}).ToList();

            Assert.IsNotNull(result);
            Assert.IsNotEmpty(result);
            Assert.AreEqual(unixRelative.Replace('/', Path.DirectorySeparatorChar), result[0], "1: For " + unixRelative);
            Assert.AreEqual(unixRelative.Replace('/', Path.DirectorySeparatorChar), result[1], "2: For " + unixRooted);
        }
Example #6
0
 public void TestNoOption()
 {
     var dumper = new SourceDumper(_curDir, new HashSet<Option>());
     var result = dumper.Dump(new List<string> {"file1.cs", "file2.cs"}).ToList();
     Assert.IsNotNull(result);
     Assert.IsNotEmpty(result);
     Assert.AreEqual(2, result.Count);
     Assert.AreEqual("file1.cs", result[0]);
     Assert.AreEqual("file2.cs", result[1]);
 }
Example #7
0
 public void TestAbsolutePaths()
 {
     var winFile = @"..\winfile.cs";
     var unixfile = @"../unixfile.cs";
     _fileSystem.Setup(x => x.ResolvePath(winFile)).Returns((string) null);
     _fileSystem.Setup(x => x.ResolvePath(unixfile)).Returns((string) null);
     var dumper = new SourceDumper(_curDir, new HashSet<Option> {SourceDumperOptions.AbsolutePaths});
     var result =
         dumper.Dump(new List<string> {@"..\winfile.cs", "../unixfile.cs", _windowsRooted, _unixRooted}).ToList();
     Assert.IsNotNull(result);
     Assert.IsNotEmpty(result);
     Assert.AreEqual(winFile, result[0]);
     Assert.AreEqual(unixfile, result[1]);
     Assert.AreEqual(_windowsRooted, result[2]);
     Assert.AreEqual(_unixRooted, result[3]);
 }