mirror of
https://github.com/fosskers/cargo-aur.git
synced 2026-03-11 17:34:53 -05:00
Just call tar manually
This commit is contained in:
@@ -14,6 +14,6 @@ categories = ["cargo-plugins", "command-line-utilities"]
|
||||
[dependencies]
|
||||
auto_from = "0.3"
|
||||
itertools = "0.9"
|
||||
toml = "0.5"
|
||||
serde = "1.0"
|
||||
serde_derive = "1.0"
|
||||
toml = "0.5"
|
||||
|
||||
24
src/main.rs
24
src/main.rs
@@ -1,8 +1,8 @@
|
||||
use auto_from::From;
|
||||
use itertools::Itertools;
|
||||
use serde_derive::Deserialize;
|
||||
use std::process::Command;
|
||||
use std::{fmt, fs, io, process};
|
||||
use std::process::{self, Command};
|
||||
use std::{fmt, fs, io};
|
||||
|
||||
// What it needs to do:
|
||||
// 1. Read Cargo.toml and produce PKGBUILD.
|
||||
@@ -14,7 +14,6 @@ struct Config {
|
||||
package: Package,
|
||||
}
|
||||
|
||||
// TODO See how binary size is affected by taking on a `versions` dep.
|
||||
#[derive(Deserialize, Debug)]
|
||||
struct Package {
|
||||
name: String,
|
||||
@@ -61,9 +60,9 @@ fn main() {
|
||||
fn work() -> Result<(), Error> {
|
||||
let config = cargo_config()?;
|
||||
release_build()?;
|
||||
tarball()?;
|
||||
tarball(&config.package)?;
|
||||
let md5 = md5sum()?;
|
||||
let pkgbuild = pkgbuild(config.package, md5);
|
||||
let pkgbuild = pkgbuild(&config.package, &md5);
|
||||
println!("{}", pkgbuild);
|
||||
|
||||
Ok(())
|
||||
@@ -76,7 +75,7 @@ fn cargo_config() -> Result<Config, Error> {
|
||||
}
|
||||
|
||||
/// Produce a legal PKGBUILD.
|
||||
fn pkgbuild(package: Package, md5: String) -> String {
|
||||
fn pkgbuild(package: &Package, md5: &str) -> String {
|
||||
format!(
|
||||
r#"
|
||||
{}
|
||||
@@ -124,7 +123,18 @@ fn release_build() -> Result<(), Error> {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn tarball() -> Result<(), Error> {
|
||||
fn tarball(package: &Package) -> Result<(), Error> {
|
||||
let path = format!("{}-{}-x86_64.tar.gz", package.name, package.version);
|
||||
let binary = format!("target/release/{}", package.name);
|
||||
|
||||
fs::copy(binary, &package.name)?;
|
||||
Command::new("tar")
|
||||
.arg("czf")
|
||||
.arg(path)
|
||||
.arg(&package.name)
|
||||
.status()?;
|
||||
fs::remove_file(&package.name)?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user