feat(readme): warn on no readme

master
Ashley Williams 7 years ago
parent beaf912f2f
commit 8f25bf1fea
  1. 171
      examples/no-readme/Cargo.lock
  2. 13
      examples/no-readme/Cargo.toml
  3. 15
      examples/no-readme/src/lib.rs
  4. 2
      src/lib.rs
  5. 10
      src/main.rs
  6. 22
      src/readme.rs

@ -0,0 +1,171 @@
[[package]]
name = "dtoa"
version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "fnv"
version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "itoa"
version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "no-readme"
version = "0.1.0"
dependencies = [
"wasm-bindgen 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "num-traits"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "proc-macro2"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "quote"
version = "0.3.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "quote"
version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"proc-macro2 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "serde"
version = "1.0.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "serde_derive"
version = "1.0.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_derive_internals 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)",
"syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "serde_derive_internals"
version = "0.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)",
"synom 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "serde_json"
version = "1.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"dtoa 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
"itoa 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
"num-traits 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "syn"
version = "0.11.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
"synom 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)",
"unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "syn"
version = "0.12.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"proc-macro2 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
"quote 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
"unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "synom"
version = "0.11.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "unicode-xid"
version = "0.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "unicode-xid"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "wasm-bindgen"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"wasm-bindgen-macro 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "wasm-bindgen-macro"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"proc-macro2 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
"quote 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_json 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)",
"syn 0.12.13 (registry+https://github.com/rust-lang/crates.io-index)",
"wasm-bindgen-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "wasm-bindgen-shared"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_derive 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)",
]
[metadata]
"checksum dtoa 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "09c3753c3db574d215cba4ea76018483895d7bff25a31b49ba45db21c48e50ab"
"checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3"
"checksum itoa 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8324a32baf01e2ae060e9de58ed0bc2320c9a2833491ee36cd3b4c414de4db8c"
"checksum num-traits 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b3c2bd9b9d21e48e956b763c9f37134dc62d9e95da6edb3f672cacb6caf3cd3"
"checksum proc-macro2 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cd07deb3c6d1d9ff827999c7f9b04cdfd66b1b17ae508e14fe47b620f2282ae0"
"checksum quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a"
"checksum quote 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1eca14c727ad12702eb4b6bfb5a232287dcf8385cb8ca83a3eeaf6519c44c408"
"checksum serde 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)" = "db99f3919e20faa51bb2996057f5031d8685019b5a06139b1ce761da671b8526"
"checksum serde_derive 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)" = "f4ba7591cfe93755e89eeecdbcc668885624829b020050e6aec99c2a03bd3fd0"
"checksum serde_derive_internals 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6e03f1c9530c3fb0a0a5c9b826bdd9246a5921ae995d75f512ac917fc4dd55b5"
"checksum serde_json 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)" = "57781ed845b8e742fc2bf306aba8e3b408fe8c366b900e3769fbc39f49eb8b39"
"checksum syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)" = "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b441dad"
"checksum syn 0.12.13 (registry+https://github.com/rust-lang/crates.io-index)" = "517f6da31bc53bf080b9a77b29fbd0ff8da2f5a2ebd24c73c2238274a94ac7cb"
"checksum synom 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6"
"checksum unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc"
"checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
"checksum wasm-bindgen 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "717507a3c7ef09d740c6d781bda57ba054d7b776f3e27d4478e25a773afd2e4b"
"checksum wasm-bindgen-macro 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbc1a194a8fe6319f9f326f0c03d2083d61727ace574f9b1df083bad79a314ad"
"checksum wasm-bindgen-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8b7cf730a826f1ec1ea2143d8582d5d2d27c0775035652daf0e0337225e8566b"

@ -0,0 +1,13 @@
[package]
name = "no-readme"
description = "an example rust->wasm crate with no readme"
version = "0.1.0"
authors = ["Ashley Williams <ashley666ashley@gmail.com>"]
license = "WTFPL"
repository = "https://github.com/ashleygwilliams/wasm-pack"
[lib]
crate-type = ["cdylib"]
[dependencies]
wasm-bindgen = "0.1.0"

@ -0,0 +1,15 @@
#![feature(proc_macro)]
extern crate wasm_bindgen;
use wasm_bindgen::prelude::*;
#[wasm_bindgen]
extern {
fn alert(s: &str);
}
#[wasm_bindgen]
pub fn greet(name: &str) {
alert(&format!("Hello, {}!", name));
}

@ -1,3 +1,4 @@
extern crate console;
extern crate failure; extern crate failure;
extern crate indicatif; extern crate indicatif;
#[macro_use] #[macro_use]
@ -9,6 +10,7 @@ pub mod build;
pub mod bindgen; pub mod bindgen;
pub mod readme; pub mod readme;
pub mod manifest; pub mod manifest;
pub mod progressbar;
use std::fs; use std::fs;

@ -5,7 +5,7 @@ extern crate indicatif;
extern crate quicli; extern crate quicli;
extern crate wasm_pack; extern crate wasm_pack;
mod progressbar; use wasm_pack::progressbar;
use std::time::Instant; use std::time::Instant;
@ -18,7 +18,6 @@ static TARGET: Emoji = Emoji("🎯 ", "");
static CYCLONE: Emoji = Emoji("🌀 ", ""); static CYCLONE: Emoji = Emoji("🌀 ", "");
static FOLDER: Emoji = Emoji("📂 ", ""); static FOLDER: Emoji = Emoji("📂 ", "");
static MEMO: Emoji = Emoji("📝 ", ""); static MEMO: Emoji = Emoji("📝 ", "");
static DANCERS: Emoji = Emoji("👯 ", "");
static DOWN_ARROW: Emoji = Emoji("⬇ ", ""); static DOWN_ARROW: Emoji = Emoji("⬇ ", "");
static RUNNER: Emoji = Emoji("🏃 ", ""); static RUNNER: Emoji = Emoji("🏃 ", "");
static SPARKLE: Emoji = Emoji("✨ ", ":-)"); static SPARKLE: Emoji = Emoji("✨ ", ":-)");
@ -88,14 +87,7 @@ main!(|args: Cli, log_level: verbosity| match args.cmd {
let pb4 = progressbar::new(step4); let pb4 = progressbar::new(step4);
manifest::write_package_json(&crate_path)?; manifest::write_package_json(&crate_path)?;
pb4.finish(); pb4.finish();
let step5 = format!(
"{} {}Copying over your README...",
style("[5/7]").bold().dim(),
DANCERS
);
let pb5 = progressbar::new(step5);
readme::copy_from_crate(&crate_path)?; readme::copy_from_crate(&crate_path)?;
pb5.finish();
let step6 = format!( let step6 = format!(
"{} {}Installing WASM-bindgen...", "{} {}Installing WASM-bindgen...",
style("[6/7]").bold().dim(), style("[6/7]").bold().dim(),

@ -1,9 +1,29 @@
use std::fs; use std::fs;
use failure::Error; use failure::Error;
use console::{style, Emoji};
use indicatif::MultiProgress;
use progressbar;
static WARN: Emoji = Emoji("⚠ ", ":-)");
static DANCERS: Emoji = Emoji("👯 ", "");
pub fn copy_from_crate(path: &str) -> Result<(), Error> { pub fn copy_from_crate(path: &str) -> Result<(), Error> {
let m = MultiProgress::new();
let step = format!(
"{} {}Copying over your README...",
style("[5/7]").bold().dim(),
DANCERS
);
let pb = m.add(progressbar::new(step));
let crate_readme_path = format!("{}/README.md", path); let crate_readme_path = format!("{}/README.md", path);
let new_readme_path = format!("{}/pkg/README.md", path); let new_readme_path = format!("{}/pkg/README.md", path);
fs::copy(&crate_readme_path, &new_readme_path)?; if let Err(_) = fs::copy(&crate_readme_path, &new_readme_path) {
let warn = format!("{} {}: origin crate has no README", WARN, style("[WARN]").bold().dim());
let warn_pb = m.add(progressbar::new(warn));
warn_pb.finish();
};
pb.finish();
m.join()?;
Ok(()) Ok(())
} }

Loading…
Cancel
Save