Skip to content

Instantly share code, notes, and snippets.

@masterxavierfox
Forked from hosamshahin/github.sh
Created September 3, 2019 07:43
Show Gist options
  • Select an option

  • Save masterxavierfox/36aaafa2118916030171722b7af7aa9d to your computer and use it in GitHub Desktop.

Select an option

Save masterxavierfox/36aaafa2118916030171722b7af7aa9d to your computer and use it in GitHub Desktop.
#!/bin/bash
#
# Copyright 2011, Tim Branyen @tbranyen <[email protected]>
# Dual licensed under the MIT and GPL licenses.
#
# github.sh : Automatically clone single or multiple repos into
# a folder, great for setting up a git projects folder.
#
# CONFIGURATION:
# Set the USERNAME variable below, alternatively:
# git config --global github.user username.
#
# Set executable permissions on this script:
# chmod +x github.sh.
#
# USAGE:
# To pull repos from your GitHub
# ./github.sh repo1 repo2 repo3
#
# To pull repos from others GitHub
# ./github.sh username/repo1 username/repo2
#
# TODO:
# * Nothing atm, features welcome
#
# vim: ts=2:sw=2:sts=2
#
#
# Override these with your own values
USERNAME=
# Internal properties
[email protected]:
GITHUB_USERNAME=$(git config --global github.user)
# All arguments
args=$*
# Find each repo and pull from github
for repo in $args; do
# If no username configured, attempt to pull from git --config
if [ -z "$USERNAME" -a -n "$GITHUB_USERNAME" ]; then
USERNAME=$GITHUB_USERNAME
fi
# Test for username
if [ -n "$USERNAME" ]; then
# If a user provides the parameter username/repo pull in that specific repository.
if [ `awk -v repo="$repo" -v delimit="/" 'BEGIN{print index(repo,delimit)}'` -ne 0 ]; then
echo "Pulling in lol $repo";
git clone $GITHUB_PREFIX$repo.git
# Use the default user specified.
else
echo "Pulling in $USERNAME/$repo";
git clone $GITHUB_PREFIX$USERNAME/$repo.git
fi
# If no $USERNAME then issue warning
else
echo "Please configure either this script or 'git --config github.user username'"
fi
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment