25 lines
767 B
Plaintext
25 lines
767 B
Plaintext
|
#!/bin/bash
|
||
|
|
||
|
################################################################################
|
||
|
#
|
||
|
# projector
|
||
|
# Updates ${HOME}/Projects against the public repos at git.tty.dog
|
||
|
#
|
||
|
# Requires jq
|
||
|
#
|
||
|
################################################################################
|
||
|
|
||
|
# Ensure ${HOME}/Projects exists and set it as the working directory
|
||
|
PROJECTS_DIR="${HOME}/Projects"
|
||
|
if [ ! -d "${PROJECTS_DIR}" ]; then
|
||
|
mkdir "${PROJECTS_DIR}"
|
||
|
set-icon "${PROJECTS_DIR}" folder-code
|
||
|
fi
|
||
|
cd "${PROJECTS_DIR}"
|
||
|
|
||
|
# Perform a blobless clone of all public repos at git.tty.dog
|
||
|
API_URL="https://git.tty.dog/api/v1/repos/search"
|
||
|
for CLONE_URL in $(curl -s "${API_URL}?uid=1" | jq -r ".data.[].clone_url"); do
|
||
|
git clone --no-checkout --filter=blob:none "${CLONE_URL}"
|
||
|
done
|