[packages/delta] added script for creating crates tarball

atler atler at pld-linux.org
Fri Feb 5 19:14:05 CET 2021


commit f2b5808f4a27370766bdde3fef546b0f13c17f9c
Author: Jan Palus <atler at pld-linux.org>
Date:   Fri Feb 5 17:52:53 2021 +0100

    added script for creating crates tarball

 create-crates.sh | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 delta.spec       |  5 +----
 2 files changed, 66 insertions(+), 4 deletions(-)
---
diff --git a/delta.spec b/delta.spec
index f3cff42..bb6abeb 100644
--- a/delta.spec
+++ b/delta.spec
@@ -6,10 +6,7 @@ License:	MIT
 Group:		Applications
 Source0:	https://github.com/dandavison/delta/archive/%{version}/%{name}-%{version}.tar.gz
 # Source0-md5:	d75f73bc71407b86489eff88f837274d
-# cd delta-%{version}
-# cargo vendor
-# cd ..
-# tar cJf delta-crates-%{version}.tar.xz delta-%{version}/{vendor,Cargo.lock}
+# ./create-crates.sh
 Source1:	%{name}-crates-%{version}.tar.xz
 # Source1-md5:	55f896f9511f16f17d8d209d903904f1
 URL:		https://github.com/dandavison/delta
diff --git a/create-crates.sh b/create-crates.sh
new file mode 100755
index 0000000..414c80c
--- /dev/null
+++ b/create-crates.sh
@@ -0,0 +1,65 @@
+#!/bin/sh
+
+for cmd in bsdtar rpm-specdump cargo; do
+  if ! command -v $cmd > /dev/null 2> /dev/null; then
+    not_installed="$not_installed$cmd "
+  fi
+done
+
+if [ -n "$not_installed" ]; then
+  echo "ERROR: required commands not found: $not_installed" >&2
+  exit 1
+fi
+
+pkg_dir=$(readlink -f $(dirname "$0"))
+pkg_name=$(basename "$pkg_dir")
+
+if [ ! -f "$pkg_dir/$pkg_name.spec" ]; then
+  echo "ERROR: unable to determine package name" >&2
+  exit 1
+fi
+
+spec_dump=$(rpm-specdump "$pkg_dir/$pkg_name.spec")
+pkg_version=$(echo "$spec_dump" | grep PACKAGE_VERSION | cut -f3 -d' ')
+pkg_src=$(basename $(echo "$spec_dump" | grep SOURCEURL0 | cut -f3- -d' '))
+crates_file="$pkg_name-crates-$pkg_version.tar.xz"
+
+if [ -e "$pkg_dir/$crates_file" ]; then
+  echo "ERROR: crates file $crates_file already exists" >&2
+  exit 1
+fi
+
+if [ ! -f "$pkg_dir/$pkg_src" ]; then
+  echo "ERROR: source file $pkg_src not found" >&2
+  exit 1
+fi
+
+tmpdir=$(mktemp -d)
+
+rm_tmpdir() {
+  if [ -n "$tmpdir" -a -d "$tmpdir" ]; then
+    rm -rf "$tmpdir"
+  fi
+}
+
+trap rm_tmpdir EXIT INT HUP
+
+cd "$tmpdir"
+bsdtar xf "$pkg_dir/$pkg_src"
+src_dir=$(ls)
+if [ $(echo "$src_dir" | wc -l) -ne 1 ]; then
+  echo "ERROR: unexpected source structure:\n$src_dir" >&2
+  exit 1
+fi
+
+cd "$src_dir"
+cargo vendor
+if [ $? -ne 0 ]; then
+  echo "ERROR: cargo vendor failed" >&2
+  exit 1
+fi
+
+cd ..
+tar cJf "$pkg_dir/$crates_file" "$src_dir"/{Cargo.lock,vendor}
+
+# vim: expandtab shiftwidth=2 tabstop=2
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/delta.git/commitdiff/c42db62c7ca11678b3e98a3815eb3ed86e064a93



More information about the pld-cvs-commit mailing list