28 lines
770 B
Bash
Executable file
28 lines
770 B
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
# Ensure three arguments are provided
|
|
if [ "$#" -ne 3 ]; then
|
|
echo "Usage: $0 <language> <repo-name> <project-name>"
|
|
exit 1
|
|
fi
|
|
|
|
language=$1
|
|
repo="https://github.com/prescientmoon/$2"
|
|
name=$3
|
|
|
|
# Ensure project with that name doesn't exist
|
|
if [ -d "$language/$name" ]; then
|
|
echo "Error: Project `$language/$name` already exists"
|
|
exit 1
|
|
fi
|
|
|
|
git fetch $repo
|
|
josh-filter ":prefix=$language/$name:unsign" FETCH_HEAD && git checkout FILTERED_HEAD
|
|
FILTER_BRANCH_SQUELCH_WARNING=1 \
|
|
git filter-branch --msg-filter "awk \"{print \\\"$language($name): \\\" \\\$0}\"" -f && \
|
|
git rebase --root --committer-date-is-author-date --signoff
|
|
|
|
hash=$(git hash)
|
|
git switch master
|
|
git merge --allow-unrelated $hash --log -m "Add \`$language/$name\`"
|