forked from rbenv/ruby-build
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathruby-package
More file actions
executable file
·67 lines (50 loc) · 1.83 KB
/
ruby-package
File metadata and controls
executable file
·67 lines (50 loc) · 1.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#!/usr/bin/env bash
set -e
resolve_link() {
$(type -p greadlink readlink | head -1) $1
}
abs_dirname() {
local cwd="$(pwd)"
local path="$1"
while [ -n "$path" ]; do
cd "${path%/*}"
local name="${path##*/}"
path="$(resolve_link "$name" || true)"
done
pwd
cd "$cwd"
}
bin_root="$(abs_dirname "$0")"
definition="$1"
if [ -z "$definition" ]; then
echo "usage: ruby-package DEFINITION"
fi
package="${definition##*/}"
prefix="/tmp/ruby-build/-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------/$package"
"${bin_root}/ruby-build" -v "$definition" "$prefix"
cwd="$(pwd)"
cd "${prefix}/.."
mkdir -p "${package}.rubypackage/bin"
cp "${bin_root}/../share/ruby-package/ruby-package-install" "${package}.rubypackage/bin"
cp "${bin_root}/../share/ruby-package/ruby-package-rewrite-text" "${package}.rubypackage/bin"
cc -Wall "${bin_root}/../share/ruby-package/ruby-package-rewrite-binary.c" -o "${package}.rubypackage/bin/ruby-package-rewrite-binary"
mkdir -p "${package}.rubypackage/metadata"
echo -n "$prefix" > "${package}.rubypackage/metadata/prefix"
echo -n "$package" > "${package}.rubypackage/metadata/package"
cd "$package"
while read line; do
binary="${line#Binary file }"
if [ "$line" = "$binary" ]; then
# plain text match
text="${line%%:*}"
echo "$text" >> "../${package}.rubypackage/metadata/text-files"
else
# binary match
binary="${binary% matches}"
echo "$binary" >> "../${package}.rubypackage/metadata/binary-files"
fi
done < <( grep -m 1 -R "$prefix" * )
tar cf "../${package}.rubypackage/package.tar" *
cd ..
tar czf "${cwd}/${package}.rubypackage.tar.gz" "${package}.rubypackage"
rm -fr "${package}.rubypackage"