Last active
August 16, 2022 14:25
-
-
Save freekrai/61a4bd63b1e0378e0a04f063822ec3fe to your computer and use it in GitHub Desktop.
Shell script to download Directus examples from GitHub without having to clone entire repo
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! /usr/bin/env bash | |
if [ -z "$1" ]; then | |
echo USAGE: "$0" EXAMPLE | |
exit | |
fi | |
url="https://github.com/directus/examples/$1" | |
# default to branch master | |
branch=main | |
# split url by / | |
IFS=/ read -r -a parts <<< "$url" | |
user="${parts[3]}" | |
repo="${parts[4]}" | |
# get folder segments starting at 5 to end of array | |
folders=("${parts[@]:5}") | |
folder="$(IFS=/; printf '%s' "${folders[*]}")" | |
# strip off parent folders above specific folder | |
strip="$((${#parts[@]} - 5))" | |
# download git archive | |
# pipe to tar to extract (strip off parent folder) | |
curl -L "https://github.com/${user}/${repo}/archive/${branch}.tar.gz" \ | |
| tar -xv --strip-components=${strip} "${repo}-${branch}/${folder}" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment