diff --git a/scripts/publish.sh b/scripts/publish.sh index 4846d7f..c99c5e8 100755 --- a/scripts/publish.sh +++ b/scripts/publish.sh @@ -6,9 +6,6 @@ if [ "$#" -ne 2 ]; then exit 1 fi -# Debugging: Print commands as they are executed -set -x - # Capture SOURCE_DIR and DEST_DIR from arguments SOURCE_DIR="$1" DEST_DIR="$2" @@ -36,30 +33,40 @@ find -L "$SOURCE_DIR" -type f -name "*.md" -exec grep -q "publish: true" {} \; - dest_dir=$(dirname "$dest_path") mkdir -p "$dest_dir" - # Copy the Markdown file - cp -p "$markdown_file" "$dest_path" - echo "Copied $markdown_file to $dest_path" >> "$LOG_FILE" + # Check if the destination file already exists + if [ -f "$dest_path" ]; then + echo "Skipped $markdown_file as it already exists in $dest_path" >> "$LOG_FILE" + else + # Copy the Markdown file + cp -p "$markdown_file" "$dest_path" + echo "Copied $markdown_file to $dest_path" >> "$LOG_FILE" - # Extract and copy referenced images - grep -o '\!\[\[.*\]\]' "$markdown_file" | sed 's/\!\[\[\(.*\)\]\]/\1/' | while IFS= read -r image_ref; do - # Check if image_ref is a relative path - if [[ ! "$image_ref" =~ ^/ ]]; then - image_ref="$SOURCE_DIR/$image_ref" - fi - - # Try to find the image recursively within SOURCE_DIR - image_path=$(find -L "$SOURCE_DIR" -type f -name "$(basename "$image_ref")" -print -quit) - - # Debugging: Print image_path - echo "Checking image_path: $image_path" >> "$LOG_FILE" - - if [ -f "$image_path" ]; then - cp "$image_path" "$IMAGE_DIR/" - echo "Copied image $image_ref to $IMAGE_DIR/" >> "$LOG_FILE" - else - echo "Image reference $image_ref in $markdown_file does not exist." >> "$LOG_FILE" - fi - done + # Extract and copy referenced images + grep -o '\!\[\[.*\]\]' "$markdown_file" | sed 's/\!\[\[\(.*\)\]\]/\1/' | while IFS= read -r image_ref; do + # Check if image_ref is a relative path + if [[ ! "$image_ref" =~ ^/ ]]; then + image_ref="$SOURCE_DIR/$image_ref" + fi + + # Try to find the image recursively within SOURCE_DIR + image_path=$(find -L "$SOURCE_DIR" -type f -name "$(basename "$image_ref")" -print -quit) + + # Debugging: Print image_path + echo "Checking image_path: $image_path" >> "$LOG_FILE" + + if [ -f "$image_path" ]; then + # Check if the image already exists in IMAGE_DIR + if [ ! -f "$IMAGE_DIR/$(basename "$image_ref")" ]; then + cp "$image_path" "$IMAGE_DIR/" + echo "Copied image $image_ref to $IMAGE_DIR/" >> "$LOG_FILE" + else + echo "Skipped copying image $image_ref as it already exists in $IMAGE_DIR/" >> "$LOG_FILE" + fi + else + echo "Image reference $image_ref in $markdown_file does not exist." >> "$LOG_FILE" + fi + done + fi done # Print the log file