diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 458ed5e8..812978f8 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -44,3 +44,9 @@ jobs: - name: Test CLI run: make test-cli + + - uses: actions/upload-artifact@v4 + with: + name: ${{ github.job }}-resolc + path: ./target/release/resolc + retention-days: 1 diff --git a/crates/solidity/src/resolc/arguments.rs b/crates/solidity/src/resolc/arguments.rs index cd6f1163..6e0b932f 100644 --- a/crates/solidity/src/resolc/arguments.rs +++ b/crates/solidity/src/resolc/arguments.rs @@ -19,6 +19,10 @@ pub struct Arguments { #[structopt(long = "version")] pub version: bool, + /// Print the licence and exit. + #[structopt(long = "license")] + pub license: bool, + /// Specify the input paths and remappings. /// If an argument contains a '=', it is considered a remapping. /// Multiple Solidity files can be passed in the default Solidity mode. diff --git a/crates/solidity/src/resolc/main.rs b/crates/solidity/src/resolc/main.rs index 30641df2..20c808b0 100644 --- a/crates/solidity/src/resolc/main.rs +++ b/crates/solidity/src/resolc/main.rs @@ -39,6 +39,14 @@ fn main_inner() -> anyhow::Result<()> { return Ok(()); } + if arguments.license { + let license_mit = include_str!("../../../../LICENSE-MIT"); + let license_apache = include_str!("../../../../LICENSE-APACHE"); + + println!("{}\n{}\n", license_mit, license_apache); + return Ok(()); + } + rayon::ThreadPoolBuilder::new() .stack_size(RAYON_WORKER_STACK_SIZE) .build_global()