Skip to content

Instantly share code, notes, and snippets.

@freekrai
Last active August 16, 2022 14:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save freekrai/61a4bd63b1e0378e0a04f063822ec3fe to your computer and use it in GitHub Desktop.
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
#! /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