scripts/tools/cargo-dig.rs (30 lines of code) (raw):
#!/usr/bin/env -S cargo +nightly -Zscript
---cargo
[dependencies]
toml = "0.8"
clap = { version = "4", features = ["derive"] }
---
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0 OR ISC
use clap::Parser;
use std::fs::read_to_string;
use toml::Table;
#[derive(Parser)]
#[command(about)]
struct Args {
cargo_file_path: Option<String>,
#[arg(short = 'v', long = "version")]
version: bool,
#[arg(short = 'n', long = "name")]
name: bool,
}
fn main() {
let args = Args::parse();
let content = read_to_string(args.cargo_file_path.unwrap_or("Cargo.toml".to_string()))
.expect("failed to read file");
let table = content.parse::<Table>().unwrap();
let package = table["package"].as_table().unwrap();
if args.name || !(args.version || args.name) {
println!("{}", package["name"].as_str().unwrap());
} else {
println!("{}", package["version"].as_str().unwrap());
};
}