iputils: bump to 20240905
[feed/packages.git] / utils / dockerd / git-short-commit.sh
1 #!/bin/sh
2 #
3 # USAGE: git-short-commit.sh <GIT_URL> <GIT_REF> <GIT_DIR>
4 #
5
6 set -e
7
8 error() {
9 echo "ERROR: ${*}" >&2
10 exit 1
11 }
12
13 GIT_URL="${1}"
14 if [ -z "${GIT_URL}" ]; then
15 error "Git URL not specified"
16 fi
17
18 GIT_REF="${2}"
19 if [ -z "${GIT_REF}" ]; then
20 error "Git reference not specified"
21 fi
22
23 GIT_DIR="${3}"
24 if [ -z "${GIT_DIR}" ]; then
25 error "Git clone directory not specified"
26 fi
27
28 clean_up() {
29 rm -rf "${GIT_DIR}"
30 }
31 trap clean_up EXIT
32
33 git init --quiet "${GIT_DIR}"
34 (
35 cd "${GIT_DIR}"
36 for PREFIX in "" "https://" "http://" "git@"; do
37 echo "Trying remote '${PREFIX}${GIT_URL}'" >&2
38 git remote add origin "${PREFIX}${GIT_URL}"
39
40 if git fetch --depth 1 origin "${GIT_REF}"; then
41 git checkout --detach FETCH_HEAD --
42 git rev-parse --short HEAD
43 break
44 fi
45
46 git remote remove origin
47 done
48 )