Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
pattern
asdf-vm
asdf-ruby
提交
29ab2aad
A
asdf-ruby
项目概览
pattern
/
asdf-vm
/
asdf-ruby
通知
0
Star
0
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
asdf-ruby
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
29ab2aad
编写于
8月 21, 2017
作者:
S
Stefan Breunig
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
allow to apply custom patches during install (fixes #15)
上级
9c77770a
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
44 addition
and
0 deletion
+44
-0
README.md
README.md
+7
-0
bin/install
bin/install
+37
-0
未找到文件。
README.md
浏览文件 @
29ab2aad
...
...
@@ -19,6 +19,13 @@ When installing Ruby using `asdf install`, you can pass custom configure options
*
`RUBY_CONFIGURE_OPTIONS`
- use only your configure options
*
`RUBY_EXTRA_CONFIGURE_OPTIONS`
- append these configure options along with ones that this plugin already uses
You may also apply custom patches before building with
`RUBY_APPLY_PATCHES`
, e.g.
```
RUBY_APPLY_PATCHES=$'dir/1.patch\n2.patch\nhttp://example.com/3.patch' asdf install ruby 2.4.1
RUBY_APPLY_PATCHES=$(curl -s https://raw.githubusercontent.com/rvm/rvm/master/patchsets/ruby/2.1.1/railsexpress) asdf install ruby 2.1.1
```
## Default gems
asdf-ruby can automatically install a set of default gems right after
...
...
bin/install
浏览文件 @
29ab2aad
...
...
@@ -5,6 +5,7 @@ install_ruby() {
local
version
=
$2
local
install_path
=
$3
local
ruby_type
=
$(
get_ruby_type
$version
)
local
start_dir
=
$(
pwd
)
if
[
"
$TMPDIR
"
=
""
]
;
then
local
tmp_download_dir
=
$(
mktemp
-d
-t
ruby_build_XXXXXX
)
...
...
@@ -36,6 +37,8 @@ install_ruby() {
echo
"WARNING: Might use OS-provided pkgs for the following:
$ASDF_PKG_MISSING
"
fi
apply_custom_patches
$start_dir
||
exit
1
local
configure_options
=
"
$(
construct_configure_options
$install_path
)
"
# set in os_based_configure_options
# we unset it here because echo-ing changes the return value of the function
...
...
@@ -49,6 +52,40 @@ install_ruby() {
)
}
apply_custom_patches
()
{
local
start_dir
=
$1
while
read
-r
line
;
do
if
[
"
$line
"
=
""
]
;
then
continue
fi
# define earlier, so that the exit 1 shorthand below works
local
content
if
[[
"
$line
"
=
~ ^[Hh][Tt][Tt][Pp][Ss]?://
]]
;
then
echo
"Applying patch from URL:
$line
"
content
=
$(
curl
-s
"
$line
"
)
||
exit
1
else
local
abs_path
=
$(
get_absolute_path
"
$start_dir
"
"
$line
"
)
echo
"Applying local patch:
$abs_path
"
content
=
$(
<
"
$abs_path
"
)
||
exit
1
fi
local
striplevel
=
0
grep
-q
'^diff --git a/'
<<<
"
$content
"
&&
striplevel
=
1
patch
-p
$striplevel
--force
<<<
"
$content
"
||
exit
1
done
<<<
"
$RUBY_APPLY_PATCHES
"
}
get_absolute_path
()
{
local
start_dir
=
$1
local
rel_path
=
$2
local
rel_dir
=
$(
dirname
"
$rel_path
"
)
local
rel_base
=
$(
basename
"
$rel_path
"
)
echo
$(
cd
"
$start_dir
"
cd
"
$rel_dir
"
2>/dev/null
&&
echo
"
$(
pwd
)
/
$rel_base
"
||
echo
"
$rel_path
"
)
}
construct_configure_options
()
{
local
install_path
=
$1
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录