From c70942ece1bd6c286df01b17e7b5d0978033cc85 Mon Sep 17 00:00:00 2001 From: fioncat Date: Thu, 26 Dec 2024 14:34:18 +0800 Subject: [PATCH] build: support build from non-repo --- PKGBUILD | 19 ------------------- build.rs | 26 +++++++++++++++----------- 2 files changed, 15 insertions(+), 30 deletions(-) delete mode 100644 PKGBUILD diff --git a/PKGBUILD b/PKGBUILD deleted file mode 100644 index 1aef018..0000000 --- a/PKGBUILD +++ /dev/null @@ -1,19 +0,0 @@ -# Maintainer: Wenqian - -pkgname=roxide -pkgver=0.17.4 -pkgrel=1 -pkgdesc="A git repositories manager CLI, easy to use and very fast" -arch=('x86_64') -url="https://github.com/fioncat/roxide" -license=('MIT') -depends=('git' 'fzf') -provides=('roxide') -conflicts=('roxide') - -source=("$pkgname-$pkgver::https://github.com/fioncat/roxide/releases/download/v${pkgver}/roxide-x86_64-unknown-linux-gnu.tar.gz") -sha256sums=('8b44377d537e453fb07f5ffc5cdafbda0e6732c0179eaff2d17a47cef992fa8a') - -package() { - install -Dm755 "roxide" "$pkgdir/usr/bin/roxide" -} diff --git a/build.rs b/build.rs index d57564f..7a6100e 100644 --- a/build.rs +++ b/build.rs @@ -5,13 +5,20 @@ use std::process::Command; use simple_error::bail; use vergen::{BuildBuilder, CargoBuilder, Emitter, RustcBuilder, SysinfoBuilder}; -fn uncommitted_count() -> Result> { - let output = exec_git(&["status", "-s"])?; +fn uncommitted_count() -> usize { + let output = match _exec_git(&["status", "-s"]) { + Ok(output) => output, + Err(_) => return 0, + }; let lines = output.trim().split('\n'); - Ok(lines.filter(|line| !line.trim().is_empty()).count()) + lines.filter(|line| !line.trim().is_empty()).count() +} + +fn exec_git(args: &[&str]) -> String { + _exec_git(args).unwrap_or(String::from("unknown")) } -fn exec_git(args: &[&str]) -> Result> { +fn _exec_git(args: &[&str]) -> Result> { let mut cmd = Command::new("git"); let output = cmd.args(args).output()?; if !output.status.success() { @@ -35,12 +42,9 @@ fn main() -> Result<(), Box> { .add_instructions(&si)? .emit()?; - let describe = match exec_git(&["describe", "--tags"]) { - Ok(d) => d, - Err(_) => String::from("unknown"), - }; - let sha = exec_git(&["rev-parse", "HEAD"])?; - let short_sha = exec_git(&["rev-parse", "--short", "HEAD"])?; + let describe = exec_git(&["describe", "--tags"]); + let sha = exec_git(&["rev-parse", "HEAD"]); + let short_sha = exec_git(&["rev-parse", "--short", "HEAD"]); let cargo_version = env!("CARGO_PKG_VERSION"); let stable_tag = format!("v{cargo_version}"); @@ -58,7 +62,7 @@ fn main() -> Result<(), Box> { (format!("{cargo_version}-dev_{short_sha}"), "dev") }; - let uncommitted_count = uncommitted_count()?; + let uncommitted_count = uncommitted_count(); if uncommitted_count > 0 { version = format!("{version}-uncommitted"); build_type = "dev-uncommitted";