#!/usr/bin/env bash

set -euo pipefail

if [ "${1}" == "next" ]; then
  next_date=$(ls -1 src/content/daily-email | tail -n 1 | tr -d '.md' | xargs -I {} date +%Y-%m-%d -d '{} +1 day')
else
  next_date="${1}"
fi

filepath="src/content/daily-email/${next_date}.md"

shift 1

# Generate the title and slug.
title="${*}"
slug=$(echo "${title}" | awk '{print tolower($0)}' | tr ' ' '-')

# Create the file.
cp -f --no-clobber stub.md "${filepath}"

date=$(date -d "${next_date}" +%Y-%m-%d)
day=$(date -d "${next_date}" +%d)
month=$(date -d "${next_date}" +%m)
year=$(date -d "${next_date}" +%Y)

# Replace the placeholders.
sed -i "s/{{ date }}/${date}/" "${filepath}"
sed -i "s/{{ title }}/${title}/" "${filepath}"
sed -i "s#{{ permalink }}#archive/${year}/${month}/${day}/${slug}#" "${filepath}"

# Create a commit with the appropriate date in the message
git add "${filepath}"
git commit -m "daily-email: add ${date}

${title}"

echo "${filepath}"