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