@@ -48,3 +48,41 @@ function bl_tap2junit(){
4848 # filters stdin to stdout
4949 docker run --rm -i tap-junit -s " ${suite} "
5050}
51+
52+ # Checks a Changelog file against keepachangelog.com format.
53+ function bl_validate_changelog(){
54+ local CHANGELOG=" "
55+
56+ if [[ -z " ${1:- } " ]]; then
57+ # Changelog file not specified
58+
59+ # Look in the current directory
60+ if [[ -r CHANGELOG.md ]]; then
61+ CHANGELOG=" CHANGELOG.md"
62+ fi
63+
64+ # Look in the repo root
65+ if [[ -z " ${CHANGELOG} " ]] && bl_in_git_repo; then
66+ guess=" $( bl_repo_root) /CHANGELOG.md"
67+ [[ -r " ${guess} " ]] && CHANGELOG=" ${guess} "
68+ fi
69+
70+ if [[ -z " ${CHANGELOG} " ]]; then
71+ bl_fail " CHANGELOG.md not found in current directory or root of git " \
72+ " repo, please specify the path to the changelog. " \
73+ " Usage: bl_validate_changelog /path/to/CHANGELOG.md"
74+ fi
75+ else
76+ # Changelog specified as parameter, use that.
77+ CHANGELOG=" ${1} "
78+ [[ -r " ${CHANGELOG} " ]] || bl_fail " Can't read changelog file: ${CHANGELOG} "
79+ fi
80+
81+ # Docker volume paths need to be absolute
82+ CHANGELOG=" $( bl_abs_path " ${CHANGELOG} " ) "
83+
84+ docker run \
85+ --rm \
86+ --volume " ${CHANGELOG} :/CHANGELOG.md" \
87+ cyberark/parse-a-changelog
88+ }
0 commit comments