Skip to content

Commit

Permalink
Bash script generates URLs for pa11y-ci from git diff
Browse files Browse the repository at this point in the history
  • Loading branch information
jcarstairs-scottlogic committed Nov 29, 2023
1 parent 45dfe7f commit 5acdb7f
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 1 deletion.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,5 @@ Gemfile.lock

/container_gem_cache/
/dist/
/scripts/generate-related/data/
/scripts/generate-related/data/
/pa11y-ci-urls.js
23 changes: 23 additions & 0 deletions generate_pa11y_ci_urls_from_git_diff.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#!/usr/bin/env bash
# Take in a base ref. Gets the files that have changed from the base to the HEAD.
# Export the list as a CommonJS module for the pa11y-ci configuration to use.
# Typical usage: generate_pa11y_ci_urls_from_git_diff.sh gh-pages > .pa11yci.js

base_ref=$1
if [ -z "$base_ref" ]; then
echo "No Git base ref provided. Usage: $0 <base_ref>"
exit 1
fi

changed_files=$(git diff --name-only $base_ref)

echo -n "module.exports=[";
for file in $changed_files; do
if [[ $file == _posts/* ]]; then
echo -n "'/$(./url_of_post.sh $file)',";
elif [[ $file == *.html && ! $file == _includes/* && ! $file == _layouts/* ]]; then
echo -n "'/$(./url_of_page.sh $file)',";
fi
done
echo -n "];";

2 changes: 2 additions & 0 deletions url_of_page.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
echo $1 | sed "s/\(\/\?index\)\?\.html$//";

8 changes: 8 additions & 0 deletions url_of_post.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
year="\([0-9][0-9][0-9][0-9]\)"
month="\([0-9][0-9]\)"
day="\([0-9][0-9]\)"
slug="\(.*\)"
file_ext="\(html\|markdown\|md\)"

echo $1 | sed "s/^_posts\/$year-$month-$day-$slug\.$file_ext$/\1\/\2\/\3\/\4.html/";

0 comments on commit 5acdb7f

Please sign in to comment.