コード例 #1
0
        private IEnumerable <(NuGetPackageId Package, IList <LibraryId> Dependencies)> GetFilteredReferences(ProjectAssetsParser parser, string[] targetFrameworks)
        {
            if (new IgnoreFilter(Configuration.IgnorePackages.ByProjectName).Filter(parser.GetProjectName()))
            {
                yield break;
            }

            var ignoreFilterByName = new IgnoreFilter(Configuration.IgnorePackages.ByName);

            foreach (var targetFramework in targetFrameworks)
            {
                foreach (var entry in parser.GetReferences(targetFramework))
                {
                    if (ignoreFilterByName.Filter(entry.Package.Name))
                    {
                        continue;
                    }

                    var dependencies = new List <LibraryId>(entry.Dependencies.Count);
                    foreach (var d in entry.Dependencies)
                    {
                        if (!ignoreFilterByName.Filter(d.Name))
                        {
                            dependencies.Add(new LibraryId(PackageSources.NuGet, d.Name, d.Version));
                        }
                    }

                    yield return(entry.Package, dependencies);
                }
            }
        }
コード例 #2
0
        private IEnumerable <LibraryReference> GetReferencesFromFile(string fileName)
        {
            var folderName = Path.GetFileName(Path.GetDirectoryName(fileName));

            if (new IgnoreFilter(Configuration.IgnorePackages.ByFolderName).Filter(folderName))
            {
                yield break;
            }

            var nodeModulesDirectoryName = Path.Combine(Path.GetDirectoryName(fileName), PackageJsonParser.NodeModules);

            if (!Directory.Exists(nodeModulesDirectoryName))
            {
                throw new DirectoryNotFoundException("Directory {0} not found.".FormatWith(nodeModulesDirectoryName));
            }

            var parser       = PackageJsonParser.FromFile(fileName);
            var ignoreByName = new IgnoreFilter(Configuration.IgnorePackages.ByName);

            foreach (var dependency in parser.GetDependencies())
            {
                if (!ignoreByName.Filter(dependency.Name))
                {
                    yield return(ReadFromNodeModules(dependency, nodeModulesDirectoryName, false));
                }
            }

            foreach (var dependency in parser.GetDevDependencies())
            {
                if (!ignoreByName.Filter(dependency.Name))
                {
                    yield return(ReadFromNodeModules(dependency, nodeModulesDirectoryName, true));
                }
            }
        }
コード例 #3
0
ファイル: test_IgnoreFilter.cs プロジェクト: ralfw/sync
        public void Dont_ignore_dotSync_files_in_subfolders(string relativeFilename)
        {
            var sut = new IgnoreFilter(REPO_PATH, new string[] { });

            RepoFile result = null;
            sut.Filter(new RepoFile { RelativeFileName = relativeFilename }, _ => result = _);

            Assert.IsNotNull(result);
        }
コード例 #4
0
ファイル: test_IgnoreFilter.cs プロジェクト: ralfw/sync
        public void Filter_case_insenstive(string relativeFilename)
        {
            var sut = new IgnoreFilter(null, new[]{"hello"});

            RepoFile result = null;
            sut.Filter(new RepoFile { RelativeFileName = relativeFilename }, _ => result = _);

            Assert.IsNull(result);
        }
コード例 #5
0
ファイル: test_IgnoreFilter.cs プロジェクト: ralfw/sync
        public void Ignore_certain_dotSync_files_in_reporoot(string relativeFilename)
        {
            var sut = new IgnoreFilter(REPO_PATH, new string[]{});

            RepoFile result = null;
            sut.Filter(new RepoFile { RelativeFileName = relativeFilename }, _ => result = _);

            Assert.IsNull(result);
        }
コード例 #6
0
ファイル: Program_Helpers.cs プロジェクト: jwne/SMProxy
 static void LogPacket(StreamWriter sw, bool ClientToServer, byte PacketID, PacketReader pr, params object[] args)
 {
     try
     {
         if (sw == null)
         {
             return;
         }
         bool Suppressed = (ClientToServer && ClientDenyPackets.Contains(PacketID)) ||
                           (!ClientToServer && ServerDenyPackets.Contains(PacketID));
         if (FilterOutput && !Filter.Contains(PacketID))
         {
             return;
         }
         if (IgnoreFilterOutput && IgnoreFilter.Contains(PacketID))
         {
             return;
         }
         if (ClientToServer && SuppressClient)
         {
             return;
         }
         if (!ClientToServer && SuppressServer)
         {
             return;
         }
         string address = pr.Client.Client.RemoteEndPoint.ToString();
         if (ClientToServer)
         {
             sw.WriteLine("[" + address + "] {" + DateTime.Now.ToLongTimeString() + "} [CLIENT->SERVER" + (Suppressed ? " SUPPRESSED" : "") + "]: " +
                          ((LibMinecraft.Model.PacketID)PacketID).ToString() + " (0x" + PacketID.ToString("x") + ")");
         }
         else
         {
             sw.WriteLine("[" + address + "] {" + DateTime.Now.ToLongTimeString() + "} [SERVER->CLIENT" + (Suppressed ? " SUPPRESSED" : "") + "]: " +
                          ((LibMinecraft.Model.PacketID)PacketID).ToString() + " (0x" + PacketID.ToString("x") + ")");
         }
         if (pr.Payload.Length == 0)
         {
             return;
         }
         sw.WriteLine("\t[" + DumpArray(pr.Payload) + "]");
         for (int i = 0; i < args.Length; i += 2)
         {
             if (args[i + 1] is byte[])
             {
                 sw.WriteLine("\t" + args[i].ToString() + " (Byte[]): [" + DumpArray((byte[])args[i + 1]) + "]");
             }
             else
             {
                 sw.WriteLine("\t" + args[i].ToString() + " (" + args[i + 1].GetType().Name + "): " + args[i + 1]);
             }
         }
         sw.Flush();
     }
     catch { }
 }
コード例 #7
0
ファイル: test_IgnoreFilter.cs プロジェクト: ralfw/sync
        public void Dont_ignore_files_with_dotSync_extension(string relativeFilename)
        {
            var sut = new IgnoreFilter(REPO_PATH, new string[]{});

            var rf = new RepoFile {RelativeFileName = relativeFilename};
            RepoFile result = null;
            sut.Filter(rf, _ => result = _);

            Equalidator.AreEqual(result, rf);
        }
コード例 #8
0
ファイル: test_IgnoreFilter.cs プロジェクト: ralfw/sync
        public void Ignore_empty_patterns(string relativeFilename, string expected)
        {
            var sut = new IgnoreFilter(null, new[] { "A", "", "B" });

            RepoFile result = null;
            sut.Filter(new RepoFile { RelativeFileName = relativeFilename }, _ => result = _);

            if (relativeFilename == "C")
                Assert.AreEqual("C", result.RelativeFileName);
            else
                Assert.IsNull(result);
        }
コード例 #9
0
        private IEnumerable <LibraryReference> GetReferencesFromFile(string fileName)
        {
            var parser = ProjectAssetsParser.FromFile(fileName);

            var targetFrameworks = parser.GetTargetFrameworks();

            var internalFilterByName = new IgnoreFilter(Configuration.InternalPackages.ByName);
            var isInternalByProject  = new IgnoreFilter(Configuration.InternalPackages.ByProjectName).Filter(parser.GetProjectName());

            foreach (var entry in GetFilteredReferences(parser, targetFrameworks))
            {
                var isInternal = isInternalByProject || internalFilterByName.Filter(entry.Package.Name);
                yield return(new LibraryReference(
                                 new LibraryId(PackageSources.NuGet, entry.Package.Name, entry.Package.Version),
                                 targetFrameworks,
                                 entry.Dependencies,
                                 isInternal));
            }
        }
コード例 #10
0
        protected override NameValueCollection GetQueryString()
        {
            var queryString = base.GetQueryString();

            queryString["ignoreFilter"] = IgnoreFilter.ToString();
            queryString["CountOnly"]    = CountOnly.ToString();

            if (Skip.HasValue)
            {
                queryString["Skip"] = Skip.ToString();
            }

            if (Take.HasValue)
            {
                queryString["Take"] = Take.ToString();
            }

            if (IncludeSemVer2)
            {
                queryString["semVerLevel"] = "2.0.0";
            }

            if (!string.IsNullOrWhiteSpace(SortBy))
            {
                queryString["sortBy"] = SortBy;
            }

            if (LuceneQuery.HasValue)
            {
                queryString["luceneQuery"] = LuceneQuery.ToString();
            }

            if (PackageType != null)
            {
                queryString["packageType"] = PackageType;
            }

            return(queryString);
        }
コード例 #11
0
        protected override NameValueCollection GetQueryString()
        {
            var queryString = HttpUtility.ParseQueryString(string.Empty);

            queryString["q"]            = Query;
            queryString["prerelease"]   = Prerelease.ToString();
            queryString["ignoreFilter"] = IgnoreFilter.ToString();
            queryString["CountOnly"]    = CountOnly.ToString();

            if (Skip.HasValue)
            {
                queryString["Skip"] = Skip.ToString();
            }

            if (Take.HasValue)
            {
                queryString["Take"] = Take.ToString();
            }

            if (IncludeSemVer2)
            {
                queryString["semVerLevel"] = "2.0.0";
            }

            if (!string.IsNullOrWhiteSpace(SortBy))
            {
                queryString["sortBy"] = SortBy;
            }

            if (LuceneQuery.HasValue)
            {
                queryString["luceneQuery"] = LuceneQuery.ToString();
            }

            return(queryString);
        }
コード例 #12
0
ファイル: test_IgnoreFilter.cs プロジェクト: ralfw/sync
 public void Tolerate_nonexistent_ignorefile()
 {
     File.Delete(".syncignore");
     var sut = new IgnoreFilter(".");
 }
コード例 #13
0
ファイル: test_IgnoreFilter.cs プロジェクト: ralfw/sync
        public void Ignore_on_normalized_path_delimiter(string relativeFilename)
        {
            var sut = new IgnoreFilter(REPO_PATH, new string[] { "/abc" });

            RepoFile result = null;
            sut.Filter(new RepoFile { RelativeFileName = relativeFilename }, _ => result = _);

            Assert.IsNull(result);
        }
コード例 #14
0
ファイル: test_IgnoreFilter.cs プロジェクト: ralfw/sync
        public void Ignore_on_multiple_patterns(string relativeFilename, string ignorePatterns)
        {
            var sut = new IgnoreFilter(REPO_PATH, ignorePatterns.Split(','));

            RepoFile result = null;
            sut.Filter(new RepoFile { RelativeFileName = relativeFilename }, _ => result = _);

            Assert.IsNull(result);
        }
コード例 #15
0
ファイル: test_IgnoreFilter.cs プロジェクト: ralfw/sync
        public void Ignore_on_single_pattern(string relativeFilename, string ignorePattern)
        {
            var sut = new IgnoreFilter(REPO_PATH, new string[] { ignorePattern });

            RepoFile result = null;
            sut.Filter(new RepoFile { RelativeFileName = relativeFilename }, _ => result = _);

            Assert.IsNull(result);
        }
コード例 #16
0
ファイル: test_IgnoreFilter.cs プロジェクト: ralfw/sync
        public void Load_ignore_patterns_from_ignorefile(string relativeFilename)
        {
            File.WriteAllText(".syncignore", "/bin/");
            var sut = new IgnoreFilter(".");

            RepoFile result = null;
            sut.Filter(new RepoFile { RelativeFileName = relativeFilename }, _ => result = _);

            Assert.IsNull(result);
        }
コード例 #17
0
ファイル: test_IgnoreFilter.cs プロジェクト: ralfw/sync
        public void No_file_to_ignore()
        {
            var sut = new IgnoreFilter(REPO_PATH, new string[]{});

            RepoFile result = null;
            var rf = new RepoFile {RelativeFileName = "hello.txt"};
            sut.Filter(rf, _ => result = _);

            Equalidator.AreEqual(result, rf);
        }