Skip to content

Instantly share code, notes, and snippets.

@steven-p-walsh
Created January 6, 2020 14:52
Show Gist options
  • Save steven-p-walsh/b4f00f7b38587405099b3fcc8a5375c0 to your computer and use it in GitHub Desktop.
Save steven-p-walsh/b4f00f7b38587405099b3fcc8a5375c0 to your computer and use it in GitHub Desktop.
#!/bin/bash
REPOSITORY_DIR=$1
BACKUP_DESTINATION=$2
CURRENTDATE=$(date +"%Y_%m_%d")
BACKUP_ZIP=$BACKUP_DESTINATION$CURRENTDATE".zip"
echo "Backing up under the name of "$CURRENTDATE" to "$BACKUP_ZIP
function backup_mercurial_repo {
REPO_PATH=$1
REPO_NAME=$(basename $REPO_PATH)
BACKUP_FILE=$BACKUP_DESTINATION$CURRENTDATE"_"$REPO_NAME".diff"
echo $REPO_NAME" is a mercurial repo, backing up to "$BACKUP_FILE
hg diff -R $REPO_PATH > $BACKUP_FILE
zip -j $BACKUP_ZIP $BACKUP_FILE
rm $BACKUP_FILE
}
function backup_git_repo {
REPO_PATH=$1
REPO_NAME=$(basename $REPO_PATH)
BACKUP_FILE=$BACKUP_DESTINATION$CURRENTDATE"_"$REPO_NAME".diff"
echo $REPO_NAME" is a git repo, backing up to "$BACKUP_FILE
cd $REPO_PATH
git diff > $BACKUP_FILE
zip -j $BACKUP_ZIP $BACKUP_FILE
rm $BACKUP_FILE
}
# Loop through given repository directory
for f in $REPOSITORY_DIR*;
do
# if mercurial, back it up using mercurials process
[ -d $f/.hg ] && backup_mercurial_repo $f
# if git, back it up using gits process
[ -d $f/.git ] && backup_git_repo $f
done;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment