mirror of https://github.com/captn3m0/outliner.git
[git] Break git sync into separate command
This commit is contained in:
parent
1159aeb4fd
commit
09287e7612
|
@ -1,4 +1,5 @@
|
|||
#!/bin/sh
|
||||
set -eu
|
||||
|
||||
if [ $# -eq 0 ]; then
|
||||
echo "Please run with outliner [export|import] arguments"
|
||||
|
@ -6,50 +7,56 @@ if [ $# -eq 0 ]; then
|
|||
fi
|
||||
|
||||
setup_git() {
|
||||
chmod 0400 "$HOME/.ssh/id_rsa"
|
||||
|
||||
if [ -f "$HOME/.ssh/id_rsa" ]; then
|
||||
chmod 600 "$HOME.ssh/id_rsa"
|
||||
chmod 0400 "$HOME/.ssh/id_rsa"
|
||||
|
||||
if [ ! -d "$HOME/.ssh/id_rsa.pub" ]; then
|
||||
ssh-keygen -y -f "$HOME/.ssh/id_rsa" > "$HOME/.ssh/id_rsa.pub"
|
||||
fi
|
||||
|
||||
echo "[+] Using SSH key for git pushes"
|
||||
else
|
||||
echo "[E] Git credentials not available, quitting"
|
||||
exit 0
|
||||
exit 1
|
||||
fi
|
||||
|
||||
eval $(ssh-agent)
|
||||
ssh-add "$HOME/.ssh/id_rsa"
|
||||
}
|
||||
|
||||
update_git_repo() {
|
||||
BRANCH=${GIT_BRANCH:-master}
|
||||
# Clone the branch in a temporary directory
|
||||
tmp_dir=$(mktemp -d)
|
||||
git clone "$GIT_REMOTE_URL" "$tmp_dir"
|
||||
cp -r "$1/*" "$tmp_dir/"
|
||||
cd "$tmp_dir" || exit 1
|
||||
git add .
|
||||
git commit -m "Updates: $(date)"
|
||||
git push origin "$BRANCH"
|
||||
update_git_config() {
|
||||
EMAIL=${GIT_EMAIL:-outliner@example.invalid}
|
||||
git config --global user.email "$EMAIL"
|
||||
git config --global user.name "Outliner Backup"
|
||||
git remote add origin "$GIT_REMOTE_URL"
|
||||
}
|
||||
|
||||
case $1 in
|
||||
export)
|
||||
shift
|
||||
bundle exec outliner-export "$@"
|
||||
|
||||
if [ -z "$GIT_REMOTE_URL" ]; then
|
||||
echo "GIT_REMOTE_URL not set"
|
||||
else
|
||||
setup_git
|
||||
update_git_repo "$2"
|
||||
fi
|
||||
;;
|
||||
import)
|
||||
shift
|
||||
bundle exec outliner-import "$@"
|
||||
;;
|
||||
sync)
|
||||
tmp_dir=$(mktemp -d)
|
||||
if [ -z "$GIT_REMOTE_URL" ]; then
|
||||
echo "[E] GIT_REMOTE_URL not set"
|
||||
exit 1
|
||||
else
|
||||
setup_git
|
||||
bundle exec outliner-export "$tmp_dir"
|
||||
cd "$tmp_dir"
|
||||
git init
|
||||
update_git_config
|
||||
git add .
|
||||
git commit --message "Backup: $(date)"
|
||||
BRANCH=${GIT_BRANCH:-master}
|
||||
git checkout -b "$BRANCH"
|
||||
git push origin --force "$BRANCH"
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
echo "Invalid command, please check README"
|
||||
;;
|
||||
|
|
Loading…
Reference in New Issue