From 09287e761251b92175a4b1809e1c24a84671cf61 Mon Sep 17 00:00:00 2001 From: Nemo Date: Tue, 13 Aug 2019 18:01:11 +0530 Subject: [PATCH] [git] Break git sync into separate command --- entrypoint.sh | 51 +++++++++++++++++++++++++++++---------------------- 1 file changed, 29 insertions(+), 22 deletions(-) diff --git a/entrypoint.sh b/entrypoint.sh index 20324ea..66439b1 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -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" ;;