From 156bc864579db7a28736f7af7b65aab7532a1816 Mon Sep 17 00:00:00 2001 From: Nemo Date: Mon, 12 Aug 2019 19:27:32 +0530 Subject: [PATCH] Adds git-sync support --- Dockerfile | 5 ++++- entrypoint.sh | 41 ++++++++++++++++++++++++++++++++++++++--- 2 files changed, 42 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 731648a..3aaf633 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,6 +4,9 @@ WORKDIR /outliner COPY . /outliner/ RUN gem install bundler && \ - bundle install + bundle install && \ + apk add --no-cache git && \ + echo -e "StrictHostKeyChecking no" >> /etc/ssh/ssh_config && \ + mkdir /root/.ssh ENTRYPOINT ["/outliner/entrypoint.sh"] diff --git a/entrypoint.sh b/entrypoint.sh index 446edb2..1fd8e4e 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -5,15 +5,50 @@ if [ $# -eq 0 ]; then exit fi +setup_git() { + chmod 0400 /root/.ssh/id_rsa + + if [ -f "$HOME.ssh/id_rsa" ]; then + chmod 600 "$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 + fi +} + +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" +} + case $1 in export) shift - bundle exec outliner-export $@ + 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 $@ - break + bundle exec outliner-import "$@" ;; *) echo "Invalid command, please check README"