]> git.pld-linux.org Git - packages/delta.git/blame - create-crates.sh
add support for reusing crates from older package version
[packages/delta.git] / create-crates.sh
CommitLineData
f2b5808f
JP
1#!/bin/sh
2
4a2626ba
JP
3force_cargo_package="git-delta"
4
5for cmd in bsdtar rpm-specdump cargo perl; do
f2b5808f
JP
6 if ! command -v $cmd > /dev/null 2> /dev/null; then
7 not_installed="$not_installed$cmd "
8 fi
9done
10
11if [ -n "$not_installed" ]; then
12 echo "ERROR: required commands not found: $not_installed" >&2
13 exit 1
14fi
15
16pkg_dir=$(readlink -f $(dirname "$0"))
17pkg_name=$(basename "$pkg_dir")
18
19if [ ! -f "$pkg_dir/$pkg_name.spec" ]; then
20 echo "ERROR: unable to determine package name" >&2
21 exit 1
22fi
23
24spec_dump=$(rpm-specdump "$pkg_dir/$pkg_name.spec")
25pkg_version=$(echo "$spec_dump" | grep PACKAGE_VERSION | cut -f3 -d' ')
26pkg_src=$(basename $(echo "$spec_dump" | grep SOURCEURL0 | cut -f3- -d' '))
27crates_file="$pkg_name-crates-$pkg_version.tar.xz"
4a2626ba 28cargo_package=${force_cargo_package:-$pkg_name}
f2b5808f
JP
29
30if [ -e "$pkg_dir/$crates_file" ]; then
31 echo "ERROR: crates file $crates_file already exists" >&2
32 exit 1
33fi
34
35if [ ! -f "$pkg_dir/$pkg_src" ]; then
36 echo "ERROR: source file $pkg_src not found" >&2
37 exit 1
38fi
39
40tmpdir=$(mktemp -d)
41
42rm_tmpdir() {
43 if [ -n "$tmpdir" -a -d "$tmpdir" ]; then
44 rm -rf "$tmpdir"
45 fi
46}
47
48trap rm_tmpdir EXIT INT HUP
49
50cd "$tmpdir"
51bsdtar xf "$pkg_dir/$pkg_src"
52src_dir=$(ls)
53if [ $(echo "$src_dir" | wc -l) -ne 1 ]; then
54 echo "ERROR: unexpected source structure:\n$src_dir" >&2
55 exit 1
56fi
57
58cd "$src_dir"
59cargo vendor
60if [ $? -ne 0 ]; then
61 echo "ERROR: cargo vendor failed" >&2
62 exit 1
63fi
64
4a2626ba
JP
65# replace cargo package version with @@VERSION@@
66perl -pi -e 'BEGIN { undef $/;} s/(\[\[package\]\]\nname\s*=\s*"'"$cargo_package"'"\nversion\s*=\s*")[^"]+/$1\@\@VERSION\@\@/m' Cargo.lock
67
f2b5808f
JP
68cd ..
69tar cJf "$pkg_dir/$crates_file" "$src_dir"/{Cargo.lock,vendor}
70
71# vim: expandtab shiftwidth=2 tabstop=2
This page took 0.058042 seconds and 4 git commands to generate.