Skip to main content

package_parser/pkgs/
mod.rs

1use std::sync::Arc;
2
3pub use self::common::model::{PackageManifest, RecognizeContext};
4
5pub mod cargo;
6pub mod chef;
7pub mod chef_json;
8pub mod cocoapods;
9pub mod common;
10pub mod composer;
11pub mod conan;
12pub mod cran;
13pub mod dart;
14pub mod dotnet;
15pub mod elm;
16pub mod fortran;
17pub mod haxe;
18pub mod java;
19pub mod javascript;
20pub mod opam;
21pub mod python;
22pub mod renv;
23pub mod ruby;
24pub mod rubygems;
25pub mod spec;
26pub mod swift;
27
28use java::*;
29use python::*;
30
31fn wrap_scanner<S>(scanner: S) -> Arc<dyn PackageManifest + Send + Sync>
32where
33    S: PackageManifest + Send + Sync + 'static,
34{
35    Arc::new(scanner)
36}
37
38pub fn create_scanners() -> Vec<Arc<dyn PackageManifest + Send + Sync>> {
39    vec![
40        wrap_scanner(javascript::manifest::PackageJson::new()),
41        wrap_scanner(cargo::CargoToml::new()),
42        wrap_scanner(cargo::CargoLock::new()),
43        wrap_scanner(chef::Chef::new()),
44        wrap_scanner(cocoapods::CocoaPods::new()),
45        wrap_scanner(composer::PhpComposer::new()),
46        wrap_scanner(conan::ConanLock::new()),
47        wrap_scanner(cran::Cran::new()),
48        wrap_scanner(dotnet::csproj::CSharpCsproj::new()),
49        wrap_scanner(elm::ElmJson::new()),
50        wrap_scanner(fortran::FpmToml::new()),
51        wrap_scanner(ruby::gemfile::Gemfile::new()),
52        wrap_scanner(gradlelock::GradleLock::new()),
53        wrap_scanner(gradle_dependency::GradleDependencies::new()),
54        wrap_scanner(haxe::Haxe::new()),
55        wrap_scanner(maven::JavaMavenPom::new()),
56        wrap_scanner(dotnet::nuspec::DotnetNuSpec::new()),
57        wrap_scanner(dotnet::nuget_central::NuGetCentral::new()),
58        wrap_scanner(opam::OcamlOpam::new()),
59        wrap_scanner(pipfile::Pipfile::new()),
60        wrap_scanner(pipfilelock::Pipfilelock::new()),
61        wrap_scanner(renv::RenvLock::new()),
62        wrap_scanner(dart::pubspec::PubSpec::new()),
63        wrap_scanner(pyconda::PyConda::new()),
64        wrap_scanner(pymetadata::PyMetadata::new()),
65        wrap_scanner(pyrequirements::PyRequirements::new()),
66        wrap_scanner(pysetup_cfg::PySetupCfg::new()),
67        wrap_scanner(pyproject::PyProject::new()),
68        wrap_scanner(pysetup::PySetup::new()),
69        wrap_scanner(rubygems::RubyGems::new()),
70        wrap_scanner(swift::SwiftPmLock::new()),
71    ]
72}