sync_host.sh 896 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #!/bin/bash
  2. set -eux
  3. if ! [ -x "$(command -v rclone)" ]; then
  4. apt install rclone -y
  5. else
  6. whereis rclone
  7. fi
  8. export MINDOC_SYNC="${MINDOC_SYNC:=}"
  9. export SYNC_LIST="${SYNC_LIST:=}"
  10. export SYNC_ACTION="${SYNC_ACTION:=sync --dry-run}"
  11. export HOST_DIR=/mindoc-sync-host
  12. export DOCKER_DIR=/mindoc
  13. function doSyncCopy() {
  14. if [ -d "${1}" ]
  15. then
  16. rclone $SYNC_ACTION --progress --exclude .git* --exclude .git/** "${1}" "${2}"
  17. fi
  18. }
  19. function doSync() {
  20. case $MINDOC_SYNC in
  21. "docker2host")
  22. doSyncCopy "${DOCKER_DIR}/${1}" "${HOST_DIR}/${1}"
  23. ;;
  24. "host2docker")
  25. doSyncCopy "${HOST_DIR}/${1}" "${DOCKER_DIR}/${1}"
  26. ;;
  27. *)
  28. printenv | grep MINDOC_SYNC
  29. ;;
  30. esac
  31. }
  32. export IFS=";"
  33. if ! [ -z "${SYNC_LIST}" ]; then
  34. for item in $SYNC_LIST; do
  35. doSync "${item}"
  36. done
  37. fi