distributable: url: https://github.com/bjorn/raccoin/archive/refs/tags/v{{ version }}.tar.gz strip-components: 1 provides: - bin/raccoin dependencies: gnu.org/libiconv: ^1 openssl.org: ^1.1 versions: github: bjorn/raccoin strip: /v/ build: dependencies: rust-lang.org: '>=1.56' rust-lang.org/cargo: '*' script: # raccoin doesn't provide any testability without # a UI, so we add some - run: | sed -i \ -e'1a\ const VERSION: &str = "{{version}}";' \ main.rs working-directory: src - run: | sed -i \ -e'/let portfolio_file: PathBuf = portfolio_file.into();/i\ if portfolio_file == "--version" {\ println!("raccoin v{VERSION}");\ return Ok(());\ }' \ main.rs if: '<0.2.0' working-directory: src - run: | sed -i \ -e'/let Some(portfolio_file)/i\ if let Some(arg1) = env::args_os().nth(1) {\ if arg1 == "--version" {\ println!("raccoin v{VERSION}");\ return Ok(());\ }\ }' \ main.rs if: '>=0.2.0' working-directory: src - cargo install --locked --path . --root {{prefix}} env: linux: LD: clang test: test "$(raccoin --version)" = "raccoin v{{version}}"