]> granicus.if.org Git - ejabberd/commitdiff
set-dep-versions: Cope with branches
authorHolger Weiss <holger@zedat.fu-berlin.de>
Wed, 25 Feb 2015 23:02:11 +0000 (00:02 +0100)
committerHolger Weiss <holger@zedat.fu-berlin.de>
Wed, 25 Feb 2015 23:02:11 +0000 (00:02 +0100)
Handle the case where a branch name is specified for a rebar dependency,
as we now do for Elixir.

rebar.config.script
tools/set-dep-versions

index f483899fd0887d7e006b3d37e1dbbb0f4a47b6ff..bf00908e83601ff7cfc99af81107f755fa9d9134 100644 (file)
@@ -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}) ->
index 8d56cde4d80ec2e0bec1fa76eed12ded02c8a2c9..65b250516cfeb042ca645a264e015f28b893267c 100755 (executable)
@@ -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"
 }