snippets/git-dump

30 lines
596 B
Bash
Executable File

#!/bin/sh
# USAGE:
# Working directory needs to be git repo
# call with name of directory you'd like to dump to
# if used with a web server, make sure to always serve type text/plain
# or append .txt to fullpath
set -eu
DIR="/var/www/git-dump/$1"
files=`git ls-tree --full-tree -r --name-only HEAD`
rm -rf "$DIR"
echo "$files" | while IFS=$'\n' read -r f; do
subdir=`dirname $f`
fulldir="$DIR/$subdir"
mkdir -p "$fulldir"
fullpath="$DIR/$f"
git show HEAD:"$f" > "$fullpath"
if file "$fullpath" | grep -q "text"; then
:
else
echo "Binary file" > "$fullpath"
fi
done