Skip to content

Commit 10da657

Browse files
Merge #722
722: Evaluate boolean environment variables as truthy or falsey. r=Emilgardis a=Alexhuszagh Allow values of 0, 1, so values other than `true` or `false` can be provided. `VAR=0`, `VAR=`, `VAR=-0`, or `VAR=false` will evaluate to false, while the rest will evaluate to true. Affects #661 and #721. Co-authored-by: Alex Huszagh <[email protected]>
2 parents 2f24bd4 + 933c03f commit 10da657

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
55

66
## [Unreleased]
77

8+
- #722 - boolean environment variables are evaluated as truthy or falsey.
89
- #718 - remove deb subcommand.
910
- #714 - use host target directory when falling back to host cargo.
1011
- #713 - convert relative target directories to absolute paths.

src/cli.rs

+11-1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,16 @@ fn absolute_path(path: PathBuf) -> Result<PathBuf> {
2525
})
2626
}
2727

28+
fn bool_from_envvar(envvar: &str) -> bool {
29+
if let Ok(value) = bool::from_str(envvar) {
30+
value
31+
} else if let Ok(value) = i32::from_str(envvar) {
32+
value != 0
33+
} else {
34+
!envvar.is_empty()
35+
}
36+
}
37+
2838
pub fn parse(target_list: &TargetList) -> Result<Args> {
2939
let mut channel = None;
3040
let mut target = None;
@@ -73,7 +83,7 @@ pub fn parse(target_list: &TargetList) -> Result<Args> {
7383
}
7484

7585
let docker_in_docker = env::var("CROSS_DOCKER_IN_DOCKER")
76-
.map(|s| bool::from_str(&s).unwrap_or_default())
86+
.map(|s| bool_from_envvar(&s))
7787
.unwrap_or_default();
7888

7989
Ok(Args {

0 commit comments

Comments
 (0)