From f138b2f0dcea7cd2542e1cd569509e3d87cabfcf Mon Sep 17 00:00:00 2001 From: Niklas Lindgren Date: Mon, 4 Oct 2021 14:24:13 +0100 Subject: [PATCH 1/3] feat: reverse listing order option --- src/adr-list | 22 ++++++++++++++++++++-- tests/list-records.expected | 5 ++++- tests/list-records.sh | 2 +- 3 files changed, 25 insertions(+), 4 deletions(-) diff --git a/src/adr-list b/src/adr-list index 23dd366..acbd322 100755 --- a/src/adr-list +++ b/src/adr-list @@ -2,15 +2,33 @@ set -e eval "$($(dirname $0)/adr-config)" -## usage: adr list +## usage: adr list [-r] ## ## Lists the architecture decision records +## +## Options: +## +## -r list decision records in reverse order adr_dir=$("$adr_bin_dir/_adr_dir") +sort_args=() + +while getopts ":r" arg; do + case "${arg}" in + r) + sort_args+=("-r") + ;; + *) + echo "invalid argument: $OPTARG" >&2 + exit 1 + esac + shift $((OPTIND-1)) +done + if [ -d $adr_dir ] then - find $adr_dir | grep -E "^$adr_dir/[0-9]+-[^/]*\\.md" | sort + find $adr_dir | grep -E "^$adr_dir/[0-9]+-[^/]*\\.md" | sort ${sort_args[@]} else echo "The $adr_dir directory does not exist" exit 1 diff --git a/tests/list-records.expected b/tests/list-records.expected index b7d8216..9a97b17 100644 --- a/tests/list-records.expected +++ b/tests/list-records.expected @@ -15,4 +15,7 @@ adr list doc/adr/0001-first.md doc/adr/0002-second.md doc/adr/0003-third.md - +adr list -r +doc/adr/0003-third.md +doc/adr/0002-second.md +doc/adr/0001-first.md diff --git a/tests/list-records.sh b/tests/list-records.sh index 7737137..7be5440 100644 --- a/tests/list-records.sh +++ b/tests/list-records.sh @@ -5,4 +5,4 @@ adr new second adr list adr new third adr list - +adr list -r \ No newline at end of file From 1f2d196cd77458bd8223520f806b80a7380d6aee Mon Sep 17 00:00:00 2001 From: Niklas Lindgren Date: Mon, 4 Oct 2021 14:24:22 +0100 Subject: [PATCH 2/3] feat: reversed order toc option --- src/_adr_generate_toc | 12 +++++++++--- tests/generate-contents.expected | 6 ++++++ tests/generate-contents.sh | 1 + 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/_adr_generate_toc b/src/_adr_generate_toc index fb6e966..df08c39 100755 --- a/src/_adr_generate_toc +++ b/src/_adr_generate_toc @@ -10,15 +10,17 @@ eval "$($(dirname $0)/adr-config)" ## ## -i INTRO precede the table of contents with the given INTRO text. ## -o OUTRO follow the table of contents with the given OUTRO text. -## -p LINK_PREFIX +## -p LINK_PREFIX ## prefix each decision file link with LINK_PREFIX. +## -r list the records in reverse order ## ## Both INTRO and OUTRO must be in Markdown format. -args=$(getopt i:o:p: $*) +args=$(getopt i:o:p:r $*) set -- $args link_prefix= +list_args=() for arg do @@ -36,6 +38,10 @@ do link_prefix="$2" shift 2 ;; + -r) + list_args+=("-r") + shift + ;; --) shift break @@ -54,7 +60,7 @@ then echo fi -for f in $("$adr_bin_dir/adr-list") +for f in $("$adr_bin_dir/adr-list" ${list_args[@]}) do title=$("$adr_bin_dir/_adr_title" $f) link=${link_prefix}$(basename $f) diff --git a/tests/generate-contents.expected b/tests/generate-contents.expected index 140687d..37a25c6 100644 --- a/tests/generate-contents.expected +++ b/tests/generate-contents.expected @@ -10,3 +10,9 @@ adr generate toc * [1. First Decision](0001-first-decision.md) * [2. Second Decision](0002-second-decision.md) * [3. Third Decision](0003-third-decision.md) +adr generate toc -r +# Architecture Decision Records + +* [3. Third Decision](0003-third-decision.md) +* [2. Second Decision](0002-second-decision.md) +* [1. First Decision](0001-first-decision.md) diff --git a/tests/generate-contents.sh b/tests/generate-contents.sh index aa3b9e7..ed4d937 100644 --- a/tests/generate-contents.sh +++ b/tests/generate-contents.sh @@ -2,3 +2,4 @@ adr new First Decision adr new Second Decision adr new Third Decision adr generate toc +adr generate toc -r From 23936bc97cd6806570732ff22d5239967996dfdf Mon Sep 17 00:00:00 2001 From: Niklas Lindgren Date: Tue, 19 Oct 2021 11:26:20 +0100 Subject: [PATCH 3/3] refactor: only process args when present --- src/adr-list | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/src/adr-list b/src/adr-list index acbd322..1381fa5 100755 --- a/src/adr-list +++ b/src/adr-list @@ -14,17 +14,21 @@ adr_dir=$("$adr_bin_dir/_adr_dir") sort_args=() -while getopts ":r" arg; do - case "${arg}" in - r) - sort_args+=("-r") - ;; - *) - echo "invalid argument: $OPTARG" >&2 - exit 1 - esac - shift $((OPTIND-1)) -done +if (( $# > 0 )); then + while getopts ":r" arg; do + case "${arg}" in + r) + sort_args+=("-r") + ;; + + *) + echo "invalid argument: $OPTARG" >&2 + exit 1 + ;; + esac + done + shift $((OPTIND-1)) +fi if [ -d $adr_dir ] then