Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Create an archive of our source code without git history (including all submodules)
#!/bin/sh
# Check if 7zip is installed and install it if not
hash 7z 2>/dev/null || {
echo >&2 "7z is required to be installed";
echo "I will install it for you";
brew install p7zip;
}
# Read the commit sha
read -e -p "Enter the commit sha
=> " commit_sha
# Read the archive name
read -e -p "Enter the archive name (without file extension .7z)
=> " archive_name
repoUrl=$(git config --get remote.origin.url)
# clone git repo to desktop and do the work there
rm -rf ~/Desktop/repo-export
git clone $repoUrl ~/Desktop/repo-export
# goto cloned git repo
cd ~/Desktop/repo-export
# Checking out
#echo "Checking out $commit_sha"
git checkout $commit_sha
# update submodules
git submodule update --init --recursive
#echo "Removing \033[41;33;5mALL\033[0m git files"
# Hunting for git files and delete them
find . -name '.git*' -exec rm -rf '{}' \;
# Create the archive
cd ..
echo "Creating the archive"
7z a $archive_name repo-export/
#cleanup
rm -rf ~/Desktop/repo-export
echo "\nArchive created: ~/Desktop/"$archive_name".7z"
ls -al ${archive_name}.7z
pwd
echo "\n"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment