radare2/shlr/clone_3rd_repo.sh

44 lines
836 B
Bash

#!/bin/sh
REPONAME="$1" # repository name
URL="$2" # url
BRA="$3" # branch name
TIP="$4" # commit id
git_assert() {
git --help > /dev/null 2>&1
if [ $? != 0 ]; then
echo "ERROR: Cannot find git command in PATH"
if [ "$1" = check ]; then
return 1
fi
exit 1
fi
return 0
}
fatal_msg() {
echo "[${REPONAME}] $1"
exit 1
}
git_clone() {
git_assert
echo "[${REPONAME}] Cloning ${REPONAME} from git..." >&2
git clone --quiet --single-branch --branch "${BRA}" "${URL}" "${REPONAME}" \
|| fatal_msg "Cannot clone $REPONAME from git"
cd "${REPONAME}" && git checkout --quiet "$TIP" || fatal_msg "Cannot checkout $TIP"
}
get_repo() {
git_clone || fatal_msg 'Clone failed'
}
### MAIN ###
if [ -d "$REPONAME" ]; then
echo "[${REPONAME}] Nothing to do"
exit 0
fi
git_assert
get_repo