automated release notes
This commit is contained in:
Executable
+48
@@ -0,0 +1,48 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
usage() {
|
||||
echo "Usage: $0 \"Post Title\" [blog]"
|
||||
echo " blog: engineering (default) or release-notes"
|
||||
exit 1
|
||||
}
|
||||
|
||||
[[ $# -lt 1 ]] && usage
|
||||
|
||||
title="$1"
|
||||
blog="${2:-engineering}"
|
||||
|
||||
# Title to slug: lowercase, spaces/underscores to hyphens, strip non-alphanumeric
|
||||
slug=$(echo "$title" | tr '[:upper:]' '[:lower:]' | tr ' _' '-' | sed 's/[^a-z0-9-]//g' | sed 's/--*/-/g' | sed 's/^-//;s/-$//')
|
||||
|
||||
year=$(date +%Y)
|
||||
month_day=$(date +%m-%d)
|
||||
dir="app/priv/blog/${blog}/${year}"
|
||||
file="${dir}/${month_day}-${slug}.md"
|
||||
|
||||
# Find repo root
|
||||
cd "$(dirname "$0")/.."
|
||||
|
||||
mkdir -p "$dir"
|
||||
|
||||
if [[ -f "$file" ]]; then
|
||||
echo "File already exists: $file"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cat > "$file" <<EOF
|
||||
%{
|
||||
title: "${title}",
|
||||
author: "Firehose Team",
|
||||
tags: ~w(),
|
||||
description: "",
|
||||
published: false
|
||||
}
|
||||
---
|
||||
EOF
|
||||
|
||||
echo "Created: $file"
|
||||
|
||||
if [[ -n "${EDITOR:-}" ]] && [[ -t 1 ]]; then
|
||||
exec "$EDITOR" "$file"
|
||||
fi
|
||||
Reference in New Issue
Block a user