filter git revision on git command success exit code (#1674)

The unwrap (or '.ok()' rather) triggers for some errors but not
negative status codes. In the case where helix is being packaged
in an empty git repository, the existing mechanism will fail because

    git init
    git rev-parse HEAD

gives a negative exit code and prints to stderr

    stderr: "fatal: ambiguous argument 'HEAD': unknown revision or path not in the working tree....

with a stdout of "HEAD\n" (too short to slice with [..8]).
pull/1604/head
Michael Davis 3 years ago committed by GitHub
parent 368064e316
commit a8cf0c6b90
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -6,6 +6,7 @@ fn main() {
.args(&["rev-parse", "HEAD"]) .args(&["rev-parse", "HEAD"])
.output() .output()
.ok() .ok()
.filter(|output| output.status.success())
.and_then(|x| String::from_utf8(x.stdout).ok()); .and_then(|x| String::from_utf8(x.stdout).ok());
let version: Cow<_> = match git_hash { let version: Cow<_> = match git_hash {

Loading…
Cancel
Save