mirror of
https://github.com/SkyfallWasTaken/dinopkg.git
synced 2024-11-10 04:19:40 +00:00
Validate licenses in init
This commit is contained in:
parent
b5c4759c98
commit
6a4a73426a
3 changed files with 17 additions and 0 deletions
10
Cargo.lock
generated
10
Cargo.lock
generated
|
@ -366,6 +366,7 @@ dependencies = [
|
|||
"maplit",
|
||||
"owo-colors 4.0.0",
|
||||
"serde_json",
|
||||
"spdx",
|
||||
"syntect",
|
||||
"tokio",
|
||||
"validate_package_name",
|
||||
|
@ -1249,6 +1250,15 @@ version = "1.13.2"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
|
||||
|
||||
[[package]]
|
||||
name = "spdx"
|
||||
version = "0.10.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "47317bbaf63785b53861e1ae2d11b80d6b624211d42cb20efcd210ee6f8a14bc"
|
||||
dependencies = [
|
||||
"smallvec",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "strsim"
|
||||
version = "0.11.1"
|
||||
|
|
|
@ -24,3 +24,4 @@ maplit = "1.0.2"
|
|||
serde_json = "1.0.120"
|
||||
syntect = "5.2.0"
|
||||
validate_package_name = { path = "../validate_package_name" }
|
||||
spdx = "0.10.6"
|
||||
|
|
|
@ -84,6 +84,12 @@ pub async fn init() -> Result<()> {
|
|||
.interact_text()?;
|
||||
let license: String = Input::with_theme(&ColorfulTheme::default())
|
||||
.with_prompt("License")
|
||||
.validate_with(|input: &String| {
|
||||
spdx::Expression::parse(input).map_or_else(
|
||||
|err| Err(format!("license is invalid:\n{}", err.to_string())),
|
||||
|_| Ok(()),
|
||||
)
|
||||
})
|
||||
.default("MIT".into())
|
||||
.interact_text()?;
|
||||
|
||||
|
|
Loading…
Reference in a new issue