Skip to content

Commit

Permalink
Add small deprecate_file script in dev/tools
Browse files Browse the repository at this point in the history
  • Loading branch information
Villetaneuse committed Oct 7, 2023
1 parent 8d0d361 commit 78677b8
Showing 1 changed file with 39 additions and 0 deletions.
39 changes: 39 additions & 0 deletions dev/tools/deprecate_file.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
#!/bin/sh
usage()
{
cat 1>&2 <<EOF
Usage: $0 FILE VERSION NOTE
Write deprecation attributes in a Coq source file for all commands that
support it.
Example: $0 Heap.v 8.3 "Use mergesort.v"
EOF
}

case $# in
3) ;;
*) usage; exit 1
esac

file=$1
vers=$2
note=$3

if ! [ -f "$file" ]; then
printf '%s: %s: No such file\n' "$0" "$file" 1>&2
exit 1
fi

attr="((Local|Global|Program|Canonical)[[:space:]]+)"

deprable="Theorem|Lemma|Fact|Corollary|Proposition|Property|\
Definition|Example|Fixpoint|\
Instance|Axiom|Parameter|Notation|Coercion"

annot="#[deprecated(since=\"$vers\", note=\"$note\")]"

tmp="$file".depr

sed -E "s/(^[[:space:]]*)(($attr)*($deprable).*\$)/\\1$annot\\n\\1\\2/" \
"$file" >"$tmp"
mv "$tmp" "$file"

0 comments on commit 78677b8

Please sign in to comment.