diff options
author | Alexander Foremny <aforemny@posteo.de> | 2023-09-05 15:59:25 +0200 |
---|---|---|
committer | Alexander Foremny <aforemny@posteo.de> | 2023-09-05 16:00:14 +0200 |
commit | bd02726bca52e8e3343426d48b6e893ef77dc6cb (patch) | |
tree | 541534cbb528e330c149680619d5f98be521dfee /src/extract-nix.sh | |
parent | 3dae57727e5410b84f107d94212e641194c4b385 (diff) |
refactor extract-generic.sh
Diffstat (limited to 'src/extract-nix.sh')
-rwxr-xr-x | src/extract-nix.sh | 46 |
1 files changed, 6 insertions, 40 deletions
diff --git a/src/extract-nix.sh b/src/extract-nix.sh index e092db2..335cbba 100755 --- a/src/extract-nix.sh +++ b/src/extract-nix.sh @@ -2,43 +2,9 @@ set -efu -input_file=${1-/dev/stdin} - -tree-grepper \ - --query nix '((comment)+)' \ - --format json $input_file | - jq 'sort_by(.file)' | - jq '.[]' --indent 0 | - while read -r line; do - file=$(echo "$line" | jq -r .file) - file_type=$(echo "$line" | jq -r .file_type) - items=$(echo "$line" | - jq '.matches[] | { file: $file, file_type: $file_type, match: . }' --arg file "$file" --arg file_type "$file_type" | - jq '. | select(.match.text | test("TODO .+"))' - ) - if test -z "$items"; then - continue - fi - - echo "$items" | jq --slurp '.[]' --indent 0 | - while read -r item; do - start_row=$(echo "$item" | jq '.match.start.row') - end_row=$(echo "$item" | jq '.match.end.row') - - last_commit=$(git --no-pager blame -L "$start_row,$start_row" "$file" -p | - head -n 1 | - cut -d ' ' -f 1 - ) - - text=$(echo "$item" | - jq .match.text -r | - sed 's/^# *TODO *//' | - sed 's/^\/\* *TODO *//' | - sed 's/ *\*\/$//') - - echo "$item" | jq '. + {"text": $text, "last_commit": $last_commit}' \ - --arg text "$text" \ - --arg last_commit "$last_commit" \ - -c - done - done +TREE_GREPPER_LANGUAGE=nix \ +TREE_GREPPER_QUERY='((comment)+)' \ +LINE_COMMENT_START='#' \ +BLOCK_COMMENT_START='\/\*' \ +BLOCK_COMMENT_END='\*\/' \ +"$(dirname "$0")"/extract-generic.sh "$@" |