Skip to content

Commit 8ef76b1

Browse files
committed
Initial commit
0 parents  commit 8ef76b1

File tree

4 files changed

+106
-0
lines changed

4 files changed

+106
-0
lines changed

bin/ruby-build

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
#!/bin/bash
2+
3+
set -e
4+
5+
install_package() {
6+
local cwd="$(pwd)"
7+
local package_name="$1"
8+
local package_url="$2"
9+
shift 2
10+
11+
cd "$TEMP_PATH"
12+
download_package "$package_name" "$package_url"
13+
extract_package "$package_name"
14+
cd "$package_name"
15+
build_package "$package_name" $*
16+
cd "$cwd"
17+
}
18+
19+
download_package() {
20+
local package_name="$1"
21+
local package_url="$2"
22+
23+
echo "Downloading ${package_url}..." >&2
24+
{ curl "$package_url" > "${package_name}.tar.gz"
25+
} >$LOG_PATH 2>&1
26+
}
27+
28+
extract_package() {
29+
local package_name="$1"
30+
31+
{ tar xzvf "${package_name}.tar.gz"
32+
} >$LOG_PATH 2>&1
33+
}
34+
35+
build_package() {
36+
local package_name="$1"
37+
shift
38+
39+
if [ "$#" -eq 0 ]; then
40+
local commands="standard"
41+
else
42+
local commands="$*"
43+
fi
44+
45+
echo "Installing ${package_name}..." >&2
46+
47+
for command in $commands; do
48+
"build_package_${command}"
49+
done
50+
}
51+
52+
build_package_standard() {
53+
local package_name="$1"
54+
55+
{ ./configure --prefix="$PREFIX_PATH"
56+
make -j 2
57+
make install
58+
} >$LOG_PATH 2>&1
59+
}
60+
61+
build_package_ruby() {
62+
local package_name="$1"
63+
64+
{ "$RUBY_BIN" setup.rb
65+
} >$LOG_PATH 2>&1
66+
}
67+
68+
usage() {
69+
echo "usage: ruby-build DEFINITION-PATH INSTALLATION-PREFIX"
70+
exit 1
71+
}
72+
73+
74+
DEFINITION_PATH="$1"
75+
if [ -z "$DEFINITION_PATH" ]; then
76+
usage
77+
elif [ ! -e "$DEFINITION_PATH" ]; then
78+
echo "ruby-build: definition not found: ${DEFINITION_PATH}" >&2
79+
exit 1
80+
fi
81+
82+
PREFIX_PATH="$2"
83+
if [ -z "$PREFIX_PATH" ]; then
84+
usage
85+
fi
86+
87+
SEED="$$-${RANDOM}"
88+
LOG_PATH="/tmp/ruby-build.${SEED}.log"
89+
TEMP_PATH="/tmp/ruby-build.${SEED}"
90+
RUBY_BIN="${PREFIX_PATH}/bin/ruby"
91+
CWD="$(pwd)"
92+
93+
export LDFLAGS="-L'${PREFIX_PATH}/lib' ${LDFLAGS}"
94+
export CPPFLAGS="-I'${PREFIX_PATH}/include' ${CPPFLAGS}"
95+
96+
mkdir -p "$TEMP_PATH"
97+
source "$DEFINITION_PATH"
98+
rm -fr "$TEMP_PATH"

versions/1.8.7-p352

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
install_package "ruby-1.8.7-p352" "http://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p352.tar.gz"
2+
install_package "rubygems-1.6.2" "http://production.cf.rubygems.org/rubygems/rubygems-1.6.2.tgz" ruby

versions/1.9.2-p290

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
install_package "yaml-0.1.4" "http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz"
2+
install_package "ruby-1.9.2-p290" "http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p290.tar.gz"
3+
install_package "rubygems-1.8.6" "http://production.cf.rubygems.org/rubygems/rubygems-1.8.6.tgz" ruby

versions/1.9.3-preview1

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
install_package "yaml-0.1.4" "http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz"
2+
install_package "ruby-1.9.3-preview1" "http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-preview1.tar.gz"
3+
install_package "rubygems-1.8.6" "http://production.cf.rubygems.org/rubygems/rubygems-1.8.6.tgz" ruby

0 commit comments

Comments
 (0)