🐛 Replace file if content is different
This commit is contained in:
parent
ddb3af1f46
commit
7459f2b158
|
@ -48,9 +48,42 @@ find -L "$SOURCE_DIR" -type f -name "*.md" -exec grep -q "publish: true" {} \; -
|
|||
|
||||
# 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"
|
||||
# Compare the source and destination files
|
||||
if cmp -s "$markdown_file" "$dest_path"; then
|
||||
echo "Skipped $markdown_file as it already exists and has the same content in $dest_path" >> "$LOG_FILE"
|
||||
else
|
||||
# Replace the destination file with the source file
|
||||
cp -p "$markdown_file" "$dest_path"
|
||||
echo "Replaced $dest_path with $markdown_file" >> "$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
|
||||
# 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
|
||||
else
|
||||
# Copy the Markdown file
|
||||
# Copy the Markdown file since it doesn't exist in the destination
|
||||
cp -p "$markdown_file" "$dest_path"
|
||||
echo "Copied $markdown_file to $dest_path" >> "$LOG_FILE"
|
||||
|
||||
|
@ -82,6 +115,7 @@ find -L "$SOURCE_DIR" -type f -name "*.md" -exec grep -q "publish: true" {} \; -
|
|||
fi
|
||||
done
|
||||
|
||||
|
||||
# Find Markdown files with "publish: false" and process them
|
||||
find -L "$SOURCE_DIR" -type f -name "*.md" -exec grep -q "publish: false" {} \; -exec grep -l "publish: false" {} + | while read -r markdown_file; do
|
||||
# Extract relative path from the source directory
|
||||
|
|
Loading…
Reference in New Issue