Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
ruby-build
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
OpenEdx
ruby-build
Commits
938b1a17
Commit
938b1a17
authored
Jan 06, 2014
by
Mislav Marohnić
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'hooks'
Closes #368
parents
57d8918b
eae699d6
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
89 additions
and
11 deletions
+89
-11
bin/rbenv-install
+7
-7
bin/rbenv-uninstall
+23
-1
test/hooks.bats
+56
-0
test/stubs/stub
+1
-1
test/test_helper.bash
+2
-2
No files found.
bin/rbenv-install
View file @
938b1a17
...
@@ -94,7 +94,7 @@ unset VERSION_NAME
...
@@ -94,7 +94,7 @@ unset VERSION_NAME
# version is specified by rbenv. Show usage instructions if a local
# version is specified by rbenv. Show usage instructions if a local
# version is not specified.
# version is not specified.
DEFINITION
=
"
${
ARGUMENTS
[0]
}
"
DEFINITION
=
"
${
ARGUMENTS
[0]
}
"
[
-n
"
$DEFINITION
"
]
||
DEFINITION
=
"
$(
rbenv
local
2>/dev/null
||
true
)
"
[
-n
"
$DEFINITION
"
]
||
DEFINITION
=
"
$(
rbenv
-
local 2>/dev/null
||
true
)
"
[
-n
"
$DEFINITION
"
]
||
usage 1
[
-n
"
$DEFINITION
"
]
||
usage 1
...
@@ -113,10 +113,10 @@ after_install() {
...
@@ -113,10 +113,10 @@ after_install() {
after_hooks[
"
${#
after_hooks
[@]
}
"
]=
"
$hook
"
after_hooks[
"
${#
after_hooks
[@]
}
"
]=
"
$hook
"
}
}
# Load plugin hooks.
OLDIFS
=
"
$IFS
"
for
script
in
$(
rbenv-hooks install
)
;
do
IFS
=
$'
\n
'
scripts
=(
`
rbenv-hooks install
`
)
source
"
$script
"
IFS
=
"
$OLDIFS
"
done
for
script
in
"
${
scripts
[@]
}
"
;
do
source
"
$script
"
;
done
# Set VERSION_NAME from $DEFINITION, if it is not already set. Then
# Set VERSION_NAME from $DEFINITION, if it is not already set. Then
...
@@ -154,7 +154,7 @@ fi
...
@@ -154,7 +154,7 @@ fi
# REE installer requires an existing Ruby installation to run. An
# REE installer requires an existing Ruby installation to run. An
# unsatisfied local .ruby-version file can cause the installer to
# unsatisfied local .ruby-version file can cause the installer to
# fail.)
# fail.)
export
RBENV_VERSION
=
"
$(
rbenv
global 2>/dev/null
||
true
)
"
export
RBENV_VERSION
=
"
$(
rbenv
-
global 2>/dev/null
||
true
)
"
# Execute `before_install` hooks.
# Execute `before_install` hooks.
...
@@ -193,7 +193,7 @@ for hook in "${after_hooks[@]}"; do eval "$hook"; done
...
@@ -193,7 +193,7 @@ for hook in "${after_hooks[@]}"; do eval "$hook"; done
# Run `rbenv-rehash` after a successful installation.
# Run `rbenv-rehash` after a successful installation.
if
[
"
$STATUS
"
==
"0"
]
;
then
if
[
"
$STATUS
"
==
"0"
]
;
then
rbenv
rehash
rbenv
-
rehash
else
else
cleanup
cleanup
fi
fi
...
...
bin/rbenv-uninstall
View file @
938b1a17
...
@@ -38,6 +38,24 @@ case "$DEFINITION" in
...
@@ -38,6 +38,24 @@ case "$DEFINITION" in
;;
;;
esac
esac
declare
-a
before_hooks after_hooks
before_uninstall
()
{
local
hook
=
"
$1
"
before_hooks[
"
${#
before_hooks
[@]
}
"
]=
"
$hook
"
}
after_uninstall
()
{
local
hook
=
"
$1
"
after_hooks[
"
${#
after_hooks
[@]
}
"
]=
"
$hook
"
}
OLDIFS
=
"
$IFS
"
IFS
=
$'
\n
'
scripts
=(
`
rbenv-hooks uninstall
`
)
IFS
=
"
$OLDIFS
"
for
script
in
"
${
scripts
[@]
}
"
;
do
source
"
$script
"
;
done
VERSION_NAME
=
"
${
DEFINITION
##*/
}
"
VERSION_NAME
=
"
${
DEFINITION
##*/
}
"
PREFIX
=
"
${
RBENV_ROOT
}
/versions/
${
VERSION_NAME
}
"
PREFIX
=
"
${
RBENV_ROOT
}
/versions/
${
VERSION_NAME
}
"
...
@@ -54,7 +72,11 @@ if [ -z "$FORCE" ]; then
...
@@ -54,7 +72,11 @@ if [ -z "$FORCE" ]; then
esac
esac
fi
fi
for
hook
in
"
${
before_hooks
[@]
}
"
;
do
eval
"
$hook
"
;
done
if
[
-d
"
$PREFIX
"
]
;
then
if
[
-d
"
$PREFIX
"
]
;
then
rm
-rf
"
$PREFIX
"
rm
-rf
"
$PREFIX
"
rbenv
rehash
rbenv
-
rehash
fi
fi
for
hook
in
"
${
after_hooks
[@]
}
"
;
do
eval
"
$hook
"
;
done
test/hooks.bats
0 → 100644
View file @
938b1a17
#!/usr/bin/env bats
load test_helper
setup() {
export RBENV_ROOT="${TMP}/rbenv"
export HOOK_PATH="${TMP}/i has hooks"
mkdir -p "$HOOK_PATH"
}
@test "rbenv-install hooks" {
cat > "${HOOK_PATH}/install.bash" <<OUT
before_install 'echo before: \$PREFIX'
after_install 'echo after: \$STATUS'
OUT
stub rbenv-hooks "install : echo '$HOOK_PATH'/install.bash"
stub rbenv-rehash "echo rehashed"
definition="${TMP}/2.0.0"
cat > "$definition" <<<"echo ruby-build"
run rbenv-install "$definition"
assert_success
assert_output <<-OUT
before: ${RBENV_ROOT}/versions/2.0.0
ruby-build
after: 0
rehashed
OUT
}
@test "rbenv-uninstall hooks" {
cat > "${HOOK_PATH}/uninstall.bash" <<OUT
before_uninstall 'echo before: \$PREFIX'
after_uninstall 'echo after.'
rm() {
echo "rm \$@"
command rm "\$@"
}
OUT
stub rbenv-hooks "uninstall : echo '$HOOK_PATH'/uninstall.bash"
stub rbenv-rehash "echo rehashed"
mkdir -p "${RBENV_ROOT}/versions/2.0.0"
run rbenv-uninstall -f 2.0.0
assert_success
assert_output <<-OUT
before: ${RBENV_ROOT}/versions/2.0.0
rm -rf ${RBENV_ROOT}/versions/2.0.0
rehashed
after.
OUT
assert [ ! -d "${RBENV_ROOT}/versions/2.0.0" ]
}
test/stubs/stub
View file @
938b1a17
...
@@ -3,7 +3,7 @@ set -e
...
@@ -3,7 +3,7 @@ set -e
status
=
0
status
=
0
program
=
"
${
0
##*/
}
"
program
=
"
${
0
##*/
}
"
PROGRAM
=
"
$(
echo
"
$program
"
| tr a-z
A-Z
)
"
PROGRAM
=
"
$(
echo
"
$program
"
| tr a-z
- A-Z_
)
"
[
-n
"
$TMPDIR
"
]
||
TMPDIR
=
"/tmp"
[
-n
"
$TMPDIR
"
]
||
TMPDIR
=
"/tmp"
_STUB_PLAN
=
"
${
PROGRAM
}
_STUB_PLAN"
_STUB_PLAN
=
"
${
PROGRAM
}
_STUB_PLAN"
...
...
test/test_helper.bash
View file @
938b1a17
...
@@ -15,7 +15,7 @@ teardown() {
...
@@ -15,7 +15,7 @@ teardown() {
stub
()
{
stub
()
{
local
program
=
"
$1
"
local
program
=
"
$1
"
local
prefix
=
"
$(
echo
"
$program
"
| tr a-z
A-Z
)
"
local
prefix
=
"
$(
echo
"
$program
"
| tr a-z
- A-Z_
)
"
shift
shift
export
"
${
prefix
}
_STUB_PLAN"
=
"
${
TMP
}
/
${
program
}
-stub-plan"
export
"
${
prefix
}
_STUB_PLAN"
=
"
${
TMP
}
/
${
program
}
-stub-plan"
...
@@ -31,7 +31,7 @@ stub() {
...
@@ -31,7 +31,7 @@ stub() {
unstub
()
{
unstub
()
{
local
program
=
"
$1
"
local
program
=
"
$1
"
local
prefix
=
"
$(
echo
"
$program
"
| tr a-z
A-Z
)
"
local
prefix
=
"
$(
echo
"
$program
"
| tr a-z
- A-Z_
)
"
local
path
=
"
${
TMP
}
/bin/
${
program
}
"
local
path
=
"
${
TMP
}
/bin/
${
program
}
"
export
"
${
prefix
}
_STUB_END"
=
1
export
"
${
prefix
}
_STUB_END"
=
1
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment