#!/bin/sh set -e if [ $# -eq 0 ]; then echo "No arguments provided. Aborting..." exit 1 fi if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then echo "usage: ./getsauce.sh [-h] [mode [checkout]] Retrieves the source for you. Possible values for the arguments: mode git, github-tar URL url of the repo repoName name of the repo with user/org included (e.g. username/repo or organization/repo) checkout tag, branch or complete hash of a commit Dependencies: curl jq ca-certificates git " exit 0 fi if [ $# -lt 3 ]; then echo "Arguments \"mode\" and \"URL/repoName\" not provided. Aborting..." exit 1 fi GET_SRC_MODE=$1 URL_REPONAME=$2 [ ! -z ${3+x} ] && CHECKOUT=$3 [ -z ${REPO_PATH+x} ] && REPO_PATH="project" SRC_DIR_PATH="./" TMP_DIR="tmp_extract" if [ $GET_SRC_MODE = "github-tar" ]; then mkdir "${TMP_DIR}" curl --silent --fail -L "https://api.github.com/repos/${URL_REPONAME}/tarball/${CHECKOUT}" -o - | tar xvz -f - -C "$SRC_DIR_PATH" || rm -rf "${TMP_DIR}" && exit 1 mv "${TMP_DIR}"/* "${REPO_PATH}/" elif [ $GET_SRC_MODE = "git" ]; then TMP_POSITION="${PWD}" git clone "${URL_REPONAME}" "${REPO_PATH}" cd "${REPO_PATH}" [ ! -z ${CHECKOUT+x} ] && git checkout "${CHECKOUT}" cd "${TMP_POSITION}" else echo "Not valid mode" exit 1 fi