From 96025bfc6e3268a18de7d8a97a3d3eea39636bce Mon Sep 17 00:00:00 2001 From: Holger Weiss Date: Thu, 26 Feb 2015 00:02:11 +0100 Subject: [PATCH] set-dep-versions: Cope with branches Handle the case where a branch name is specified for a rebar dependency, as we now do for Elixir. --- rebar.config.script | 8 ++------ tools/set-dep-versions | 26 ++++++++++++++++++++------ 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/rebar.config.script b/rebar.config.script index f483899fd..bf00908e8 100644 --- a/rebar.config.script +++ b/rebar.config.script @@ -92,16 +92,12 @@ CfgDeps = lists:flatmap( ({zlib, true}) -> [{p1_zlib, ".*", {git, "git://github.com/processone/zlib"}}]; ({riak, true}) -> - [{riakc, ".*", - {git, "git://github.com/basho/riak-erlang-client", - {tag, "1.4.2"}}}]; + [{riakc, ".*", {git, "git://github.com/basho/riak-erlang-client", {tag, "1.4.2"}}}]; ({json, true}) -> [{jiffy, ".*", {git, "git://github.com/davisp/jiffy"}}]; ({elixir, true}) -> [{rebar_elixir_plugin, ".*", {git, "git://github.com/yrashk/rebar_elixir_plugin"}}, - {elixir, ".*", - {git, "git://github.com/elixir-lang/elixir", - {branch, "v1.0"}}}]; + {elixir, ".*", {git, "git://github.com/elixir-lang/elixir", {branch, "v1.0"}}}]; ({iconv, true}) -> [{p1_iconv, ".*", {git, "git://github.com/processone/eiconv"}}]; ({lager, true}) -> diff --git a/tools/set-dep-versions b/tools/set-dep-versions index 8d56cde4d..65b250516 100755 --- a/tools/set-dep-versions +++ b/tools/set-dep-versions @@ -19,9 +19,13 @@ die() get_dep_list() { - sed -n \ - '/.*{ *\([^,]*\),[^,]*, *{git, *"\([^"]*\)".*/ { - s//\1,\2/ + sed -n ' + /.*{ *\([^,]*\),[^,]*, *{ *git, *"\([^"]*\)" *} *}.*/ { + s//\1,\2,master/ + p + } + /.*{ *\([^,]*\),[^,]*, *{ *git, *"\([^"]*\)" *, *{ *branch, *"\([^"]*\)".*/ { + s//\1,\2,\3/ p }' "$rebar_script" } @@ -33,7 +37,15 @@ get_dep_name() get_dep_url() { - printf '%s' "${1#*,}" + dep_url=${1#*,} + dep_url=${dep_url%,*} + + printf '%s' "$dep_url" +} + +get_dep_branch() +{ + printf '%s' "${1##*,}" } get_dep_rev() @@ -51,9 +63,10 @@ clone_repo() { dep_name=$(get_dep_name "$1") dep_url=$(get_dep_url "$1") + dep_branch=$(get_dep_branch "$1") cd "$deps_dir" - git clone -q "$dep_url" "$dep_name" + git clone -q -b "$dep_branch" "$dep_url" "$dep_name" cd "$OLDPWD" } @@ -64,7 +77,8 @@ edit_rebar_script() dep_rev=$(get_dep_rev "$1") echo "Using revision $dep_rev of $dep_name" - sed "s|\"$dep_url\"[^}]*}|\"$dep_url\", \"$dep_rev\"}|" \ + sed -e "s|\"$dep_url\".*{ *branch[^}]*} *}|\"$dep_url\", \"$dep_rev\"}|" \ + -e "s|\"$dep_url\"[^}]*}|\"$dep_url\", \"$dep_rev\"}|" \ "$rebar_script" >"$temp_file" mv "$temp_file" "$rebar_script" } -- 2.40.0