From 6e75ec801296a693a0482fc6ed30e35cca99bf5c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Isma=C3=ABl=20Bouya?= Date: Fri, 21 Dec 2018 22:13:49 +0100 Subject: [PATCH] Add possibility to fetch revision with fetch_version --- fetch_version | 49 ++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 42 insertions(+), 7 deletions(-) diff --git a/fetch_version b/fetch_version index cbbeb64..492aff1 100755 --- a/fetch_version +++ b/fetch_version @@ -2,7 +2,7 @@ usage() { echo "$0 file.json" - echo "$0 [-n|--name name] [-b|--branch branch] [-f|--file out_file] [-h|--help] (-u|--url) url" + echo "$0 [-n|--name name] [-b|--branch branch_or_rev] [-f|--file out_file] [-h|--help] (-u|--url) url" exit } @@ -72,18 +72,53 @@ fi # printf com ? "%s-%s-g%s\n" : "%s\n", tag, com, sha # }' +function get_ref () { + case "$1" in + refs/*) + echo "$1" + ;; + *) + echo "refs/heads/$1" + ;; + esac +} + +function get_name () { + branch="$1" + rev="$2" + minirev=${rev:0:7} + + case "$branch" in + refs/tags/*) + b="${branch#refs/tags/}" + echo "${b//\//-}" + ;; + refs/heads/*) + b=${branch#refs/heads/} + echo "$minirev-${b//\//-}" + ;; + refs/*) + b=${branch#refs/} + echo "$minirev-${b//\//-}" + ;; + *) + echo "$minirev-${branch//\//-}" + ;; + esac +} + function fetch_github () { - rev="$(git ls-remote --refs $url refs/heads/$branch | head -n1 | cut -f1)" - sha="$(nix-prefetch-url --unpack $url/archive/$branch.tar.gz)" + rev="$(git ls-remote --refs $url $(get_ref $branch) | head -n1 | cut -f1)" + sha="$(nix-prefetch-url --unpack $url/archive/$rev.tar.gz)" # Différent du git-describe et github-spécifique #tag=$(echo "$awk_describe" | awk -f - $url | sed -e "s/^v//") - tag=${rev:0:7}-$branch + tag=$(get_name $branch $rev) } function fetch_other () { - rev="$(git ls-remote --refs $url refs/heads/$branch | head -n1 | cut -f1)" - sha="$(nix-prefetch-git --url $url --rev refs/heads/$branch | jq -r '.sha256')" - tag=${rev:0:7}-$branch + rev="$(git ls-remote --refs $url $(get_ref $branch) | head -n1 | cut -f1)" + sha="$(nix-prefetch-git --url $url --rev $(get_ref $branch) | jq -r '.sha256')" + tag=$(get_name $branch $rev) } case "$url" in -- 2.41.0