cheat/scripts/git/cheatsheets

66 lines
1.2 KiB
Bash
Executable File

#!/bin/sh -e
init() {
readarray d < <(yq -c '.cheatpaths[]' ~/.cheat.yml)
for c in "${d[@]}";
do
name="$(echo ${c} | yq -r '.name')"
path="$(echo ${c} | yq -r '.path')"
src="$( echo ${c} | yq -r '.source')"
echo "Init $name"
[ ! -d "$path" ] && git clone $src $path || :
done
echo "Finished init"
}
pull() {
for d in `cheat -d | awk '{print $2}'`;
do
echo "Update $d"
cd "$d"
[ -d ".git" ] && git pull || :
done
echo
echo "Finished update"
}
push() {
for d in `cheat -d | grep -v "community" | awk '{print $2}'`;
do
cd "$d"
if [ -d ".git" ]
then
echo "Push modifications $d"
files=$(git ls-files -mo | tr '\n' ' ')
git add -A && git commit -m "Edited files: $files" && git push || :
else
echo "$(pwd) is not a git managed folder"
echo "First connect this to your personal git repository"
fi
done
echo
echo "Finished push operation"
}
if [ "$1" = "pull" ]; then
pull
elif [ "$1" = "push" ]; then
push
elif [ "$1" = "init" ]; then
init
else
echo "Usage:
# init cheatsheets
cheatsheets init
# pull changes
cheatsheets pull
# push changes
cheatsheets push"
fi