package_parser/pkgs/
mod.rs1use 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}