Skip to content

Commit

Permalink
Switch from 'term' to 'termcolor' crate
Browse files Browse the repository at this point in the history
The 'term' crate is unmaintained:

Stebalien/term#93

The 'termcolor' crate (by @BurntSushi) is maintained, provides a higher
level abstraction which is a better fit for what we're doing, and has
fewer (transitive) dependencies:

https://github.com/BurntSushi/termcolor
  • Loading branch information
tarcieri committed Jul 15, 2019
1 parent 8e62dd0 commit 268a58e
Show file tree
Hide file tree
Showing 6 changed files with 354 additions and 334 deletions.
68 changes: 24 additions & 44 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions Cargo.toml
Expand Up @@ -15,12 +15,11 @@ edition = "2018"
name = "cargo-audit"

[dependencies]
atty = "0.2"
gumdrop = "0.6"
lazy_static = "1"
platforms = "0.2"
rustsec = "0.12"
term = "0.5"
termcolor = "1"
serde_json = "1"

[dev-dependencies]
Expand Down
2 changes: 1 addition & 1 deletion README.md
Expand Up @@ -4,7 +4,7 @@
[![Build Status][build-image]][build-link]
[![Appveyor Status][appveyor-image]][appveyor-link]
![forbid(unsafe_code)][unsafe-image]
![Rust 1.35+][rustc-image]
![Rust 1.32+][rustc-image]
![Apache 2.0 OR MIT licensed][license-image]
[![Gitter Chat][gitter-image]][gitter-link]

Expand Down
34 changes: 17 additions & 17 deletions src/main.rs
Expand Up @@ -4,20 +4,20 @@
#![forbid(unsafe_code)]

#[macro_use]
mod shell;
mod terminal;

use gumdrop::Options;
use platforms::target::{Arch, OS};
use rustsec::{
Advisory, AdvisoryDatabase, ErrorKind, Lockfile, Package, Repository, Vulnerabilities,
Vulnerability, ADVISORY_DB_REPO_URL,
};
use serde_json::json;
use std::{
env,
path::{Path, PathBuf},
process::exit,
};
use serde_json::json;

/// Name of `Cargo.lock`
const CARGO_LOCK_FILE: &str = "Cargo.lock";
Expand Down Expand Up @@ -141,7 +141,7 @@ fn main() {
let color_config = opts.color.as_ref().map(AsRef::as_ref).unwrap_or("auto");
let use_stdout = !opts.output_json;

shell::init(color_config, use_stdout);
terminal::init(color_config, use_stdout);
audit(&opts, &load_advisory_db(&opts));
}

Expand Down Expand Up @@ -181,12 +181,12 @@ fn load_advisory_db(opts: &AuditOpts) -> AdvisoryDatabase {

let advisory_db_repo = Repository::fetch(advisory_repo_url, &advisory_repo_path, !opts.stale)
.unwrap_or_else(|e| {
status_error!("couldn't fetch advisory database: {}", e);
status_err!("couldn't fetch advisory database: {}", e);
exit(1);
});

let advisory_db = AdvisoryDatabase::from_repository(&advisory_db_repo).unwrap_or_else(|e| {
status_error!("error loading advisory database: {}", e);
status_err!("error loading advisory database: {}", e);
exit(1);
});

Expand Down Expand Up @@ -214,7 +214,7 @@ fn audit(opts: &AuditOpts, advisory_db: &AdvisoryDatabase) -> ! {
exit(1);
}
_ => {
status_error!("Couldn't load {}: {}", lockfile_path.display(), e);
status_err!("Couldn't load {}: {}", lockfile_path.display(), e);
exit(1);
}
});
Expand All @@ -237,7 +237,7 @@ fn audit(opts: &AuditOpts, advisory_db: &AdvisoryDatabase) -> ! {
if vulnerabilities.is_empty() {
status_ok!("Success", "No vulnerable packages found");
} else {
status_error!("Vulnerable crates found!");
status_err!("Vulnerable crates found!");
}

if opts.output_json {
Expand Down Expand Up @@ -300,32 +300,32 @@ fn match_vulnerability(vuln: &Vulnerability, opts: &AuditOpts) -> bool {
}

fn not_found(path: &Path) {
status_error!("Couldn't find '{}'!", path.display());
status_err!("Couldn't find '{}'!", path.display());
println!("\nRun \"cargo build\" to generate lockfile before running audit");
}

fn vulns_found(vuln_count: usize) {
println!();

if vuln_count == 1 {
status_error!("1 vulnerability found!");
status_err!("1 vulnerability found!");
} else {
status_error!("{} vulnerabilities found!", vuln_count);
status_err!("{} vulnerabilities found!", vuln_count);
}
}

fn display_advisory(package: &Package, advisory: &Advisory) {
attribute!("\nID", advisory.id.as_str());
attribute!("Crate", package.name.as_str());
attribute!("Version", &package.version.to_string());
attribute!("Date", advisory.date.as_str());
status_attr_err!("\nID", advisory.id.as_str());
status_attr_err!("Crate", package.name.as_str());
status_attr_err!("Version", &package.version.to_string());
status_attr_err!("Date", advisory.date.as_str());

if let Some(url) = advisory.url.as_ref() {
attribute!("URL", url);
status_attr_err!("URL", url);
}

attribute!("Title", &advisory.title);
attribute!(
status_attr_err!("Title", &advisory.title);
status_attr_err!(
"Solution: upgrade to",
"{}",
advisory
Expand Down

0 comments on commit 268a58e

Please sign in to comment.