======================================== shadow

Chrono GitHub Actions Chrono on crates.io Chrono on docs.rs dependency on depstatus

A build script tool compile project much information,version info,dependence info.Like shadow,if compiled,never change.forever follow your project.

When you published a rust binary. Sometimes you need to know the dependencies of the current project. * Git version information * which version of rust compiled. * Is it a debug or release version of rust. * Cargo dependent cargo.lock detail crates info. * ...

We can use this information to quickly trace the history version of the project. n This project can do this things that can help you quick get above information. Let's configuration in your project.

example

You can also see shadow_example how to configuration.

step 1

In your cargo.toml packgae with package add with below config ```toml [package] build = "build.rs"

[dependencies] shadow-rs = "0.5"

[build-dependencies] shadow-rs = "0.5" ```

step 2

In your project add file build.rs,then add with below config rust fn main() -> shadow_rs::SdResult<()> { shadow_rs::new() }

step 3

In your project find bin rust file.It's usually main.rs, you can find [bin] file with Cargo.toml,then add with below config The shadow!(build) with build config,add Rust build mod in your project. You can also replace it(build) with other name.

```rust

[macro_use]

extern crate shadow_rs;

shadow!(build); ```

step 4

Then you can use const that's shadow build it(main.rs). The build mod just we use shadow!(build) generated.

```rust fn main() { println!("{}",build::version());//print version() method println!("{}",build::BRANCH); //master println!("{}",build::SHORTCOMMIT);//8405e28e println!("{}",build::COMMITHASH);//8405e28e64080a09525a6cf1b07c22fcaf71a5c5 println!("{}",build::COMMITDATE);//2020-08-16T06:22:24+00:00 println!("{}",build::COMMITAUTHOR);//baoyachi println!("{}",build::COMMIT_EMAIL);//xxx@gmail.com

println!("{}",build::BUILD_OS);//macos-x86_64
println!("{}",build::RUST_VERSION);//rustc 1.45.0 (5c1f21c3b 2020-07-13)
println!("{}",build::RUST_CHANNEL);//stable-x86_64-apple-darwin (default)
println!("{}",build::CARGO_VERSION);//cargo 1.45.0 (744bd1fbb 2020-06-15)
println!("{}",build::PKG_VERSION);//0.3.13
println!("{}",build::CARGO_TREE); //like command:cargo tree

println!("{}",build::PROJECT_NAME);//shadow-rs
println!("{}",build::BUILD_TIME);//2020-08-16 14:50:25
println!("{}",build::BUILD_RUST_CHANNEL);//debug

} ```

Clap example

And you can also use const with clap.

Support const table

| const | example | | ------ | ------ | | version() | master/develop | | BRANCH | master/develop | | SHORTCOMMIT | 8405e28e |
| COMMIT
HASH | 8405e28e64080a09525a6cf1b07c22fcaf71a5c5 |
| COMMITDATE | 2020-08-16T06:22:24+00:00 | | COMMITAUTHOR | baoyachi | | COMMITEMAIL | xxx@gmail.com |
| BUILD
OS | macos-x8664 |
| RUST
VERSION | rustc 1.45.0 (5c1f21c3b 2020-07-13) |
| RUSTCHANNEL | stable-x8664-apple-darwin (default) |
| CARGOVERSION | cargo 1.45.0 (744bd1fbb 2020-06-15) |
| PKG
VERSION | 0.3.13 | | CARGOTREE | cargo tree |
| PROJECT
NAME | shadow-rs |
| BUILDTIME | 2020-08-16 14:50:25 |
| BUILD
RUST_CHANNEL | debug/release |

If you have any question,you can create issue.

who use shadow-rs

If you are using shadow-rs,please tell me.Or you can make a notes here,if you like:collection use.

nushell
nushell