From c20074c8cab8df2050350e2367482fdd5328a08e Mon Sep 17 00:00:00 2001 From: Amir Pourmand Date: Sat, 28 Sep 2024 09:15:21 +0330 Subject: [PATCH] Fix `entry_point.sh` docker backward compatibility problem (#2728) --- bin/entry_point.sh | 44 ++++++++++++++++++++++++++++---------------- 1 file changed, 28 insertions(+), 16 deletions(-) diff --git a/bin/entry_point.sh b/bin/entry_point.sh index ff03df0..9627ab1 100755 --- a/bin/entry_point.sh +++ b/bin/entry_point.sh @@ -1,22 +1,34 @@ #!/bin/bash -CONFIG_FILE=_config.yml +CONFIG_FILE=_config.yml -/bin/bash -c "git restore Gemfile.lock && exec jekyll serve --watch --port=8080 --host=0.0.0.0 --livereload --verbose --trace --force_polling"& +# Function to manage Gemfile.lock +manage_gemfile_lock() { + git config --global --add safe.directory '*' + if command -v git &> /dev/null && [ -f Gemfile.lock ]; then + if git ls-files --error-unmatch Gemfile.lock &> /dev/null; then + echo "Gemfile.lock is tracked by git, keeping it intact" + git restore Gemfile.lock 2>/dev/null || true + else + echo "Gemfile.lock is not tracked by git, removing it" + rm Gemfile.lock + fi + fi +} + +start_jekyll() { + manage_gemfile_lock + exec jekyll serve --watch --port=8080 --host=0.0.0.0 --livereload --verbose --trace --force_polling & +} + +start_jekyll while true; do - - inotifywait -q -e modify,move,create,delete $CONFIG_FILE - - if [ $? -eq 0 ]; then - - echo "Change detected to $CONFIG_FILE, restarting Jekyll" - - jekyll_pid=$(pgrep -f jekyll) - kill -KILL $jekyll_pid - - /bin/bash -c "git restore Gemfile.lock && exec jekyll serve --watch --port=8080 --host=0.0.0.0 --livereload --verbose --trace --force_polling"& - - fi - + inotifywait -q -e modify,move,create,delete $CONFIG_FILE + if [ $? -eq 0 ]; then + echo "Change detected to $CONFIG_FILE, restarting Jekyll" + jekyll_pid=$(pgrep -f jekyll) + kill -KILL $jekyll_pid + start_jekyll + fi done