summaryrefslogtreecommitdiffstats
path: root/src/frontend
diff options
context:
space:
mode:
Diffstat (limited to 'src/frontend')
-rw-r--r--src/frontend/json.rs49
-rw-r--r--src/frontend/list.rs31
-rw-r--r--src/frontend/mod.rs8
-rw-r--r--src/frontend/table.rs27
4 files changed, 0 insertions, 115 deletions
diff --git a/src/frontend/json.rs b/src/frontend/json.rs
index 42e44d1..2a7f40a 100644
--- a/src/frontend/json.rs
+++ b/src/frontend/json.rs
@@ -1,17 +1,12 @@
use std::io::Stdout;
use std::io::Write;
-use std::ops::Deref;
use anyhow::Error;
use anyhow::Result;
use librepology::v1::types::Package;
use librepology::v1::types::Problem;
-use librepology::v1::types::Repo;
-use crate::backend::Backend;
-use crate::compare::ComparePackage;
use crate::frontend::Frontend;
-use librepology::v1::api::Api;
pub struct JsonFrontend(Stdout);
@@ -43,48 +38,4 @@ impl Frontend for JsonFrontend {
fn list_problems(&self, problems: Vec<Problem>) -> Result<()> {
self.write(serde_json::ser::to_string_pretty(&problems).map_err(Error::from)?)
}
-
- fn compare_packages(
- &self,
- packages: Vec<ComparePackage>,
- backend: &Backend,
- filter_repos: Vec<Repo>,
- ) -> Result<()> {
- #[derive(Serialize)]
- struct PackageComp {
- // not optimal, as we have to clone the inner variables from the package
- // but using references is too complicated right now
- package_name: String,
- local_version: String,
- comparisons: Vec<CompareTarget>,
- }
-
- #[derive(Serialize)]
- struct CompareTarget {
- version: String,
- repo: String,
- }
-
- let mut output: Vec<PackageComp> = vec![];
-
- for package in packages.iter() {
- let comparisons = backend
- .project(package.name().deref())?
- .into_iter()
- .filter(|p| filter_repos.contains(p.repo()))
- .map(|upstream_package| CompareTarget {
- version: upstream_package.version().deref().clone(),
- repo: upstream_package.repo().deref().clone(),
- })
- .collect();
-
- output.push(PackageComp {
- package_name: package.name().clone(),
- local_version: package.version().clone(),
- comparisons,
- });
- }
-
- self.write(serde_json::ser::to_string_pretty(&output)?)
- }
}
diff --git a/src/frontend/list.rs b/src/frontend/list.rs
index 469d6ec..9e06828 100644
--- a/src/frontend/list.rs
+++ b/src/frontend/list.rs
@@ -7,12 +7,8 @@ use anyhow::Result;
use librepology::v1::types::Name;
use librepology::v1::types::Package;
use librepology::v1::types::Problem;
-use librepology::v1::types::Repo;
-use crate::backend::Backend;
-use crate::compare::ComparePackage;
use crate::frontend::Frontend;
-use librepology::v1::api::Api;
pub struct ListFrontend(Stdout);
@@ -86,31 +82,4 @@ impl Frontend for ListFrontend {
})
}
- fn compare_packages(
- &self,
- packages: Vec<ComparePackage>,
- backend: &Backend,
- filter_repos: Vec<Repo>,
- ) -> Result<()> {
- let mut output = self.0.lock();
-
- for package in packages {
- backend
- .project(package.name().deref())?
- .into_iter()
- .filter(|p| filter_repos.contains(p.repo()))
- .map(|upstream_package| {
- writeln!(output,
- "{our_package_name} - {our_package_version} - {up_repo_name} - {up_package_version}",
- our_package_name = package.name().deref(),
- our_package_version = package.version().deref(),
- up_repo_name = upstream_package.repo().deref(),
- up_package_version = upstream_package.version().deref()
- ).map_err(Error::from)
- })
- .collect::<Result<Vec<()>>>()?;
- }
-
- Ok(())
- }
}
diff --git a/src/frontend/mod.rs b/src/frontend/mod.rs
index c9ef381..f1d5001 100644
--- a/src/frontend/mod.rs
+++ b/src/frontend/mod.rs
@@ -3,8 +3,6 @@ use clap::ArgMatches;
use librepology::v1::types::*;
-use crate::backend::Backend;
-use crate::compare::ComparePackage;
use crate::config::Configuration;
use crate::frontend::json::JsonFrontend;
use crate::frontend::list::ListFrontend;
@@ -14,12 +12,6 @@ use crate::frontend::table::TableFrontend;
pub trait Frontend {
fn list_packages(&self, packages: Vec<Package>) -> Result<()>;
fn list_problems(&self, problems: Vec<Problem>) -> Result<()>;
- fn compare_packages(
- &self,
- packages: Vec<ComparePackage>,
- backend: &Backend,
- filter_repos: Vec<Repo>,
- ) -> Result<()>;
}
pub mod json;
diff --git a/src/frontend/table.rs b/src/frontend/table.rs
index 6bb42d2..6a18af3 100644
--- a/src/frontend/table.rs
+++ b/src/frontend/table.rs
@@ -5,14 +5,10 @@ use anyhow::Result;
use librepology::v1::types::Name;
use librepology::v1::types::Package;
use librepology::v1::types::Problem;
-use librepology::v1::types::Repo;
use prettytable::format;
use prettytable::Table;
-use crate::backend::Backend;
-use crate::compare::ComparePackage;
use crate::frontend::Frontend;
-use librepology::v1::api::Api;
/// A Frontend that formats the output in a nice ASCII-art table
pub struct TableFrontend(Stdout);
@@ -95,27 +91,4 @@ impl Frontend for TableFrontend {
self.print(table)
}
- fn compare_packages(
- &self,
- packages: Vec<ComparePackage>,
- backend: &Backend,
- filter_repos: Vec<Repo>,
- ) -> Result<()> {
- let mut table = self.mktable();
- for package in packages {
- backend
- .project(package.name().deref())?
- .into_iter()
- .filter(|p| filter_repos.contains(p.repo()))
- .for_each(|upstream_package| {
- table.add_row(row![
- package.name().clone(),
- package.version().clone(),
- upstream_package.repo().clone(),
- upstream_package.version().clone(),
- ]);
- });
- }
- self.print(table)
- }
}