xref: /netbsd-src/external/gpl3/gcc.old/dist/contrib/reghunt/bin/gcc-svn-ids (revision 36ac495d2b3ea2b9d96377b2143ebfedac224b92)
1*36ac495dSmrg#! /bin/sh
2*36ac495dSmrg
3*36ac495dSmrg# Convert one kind of changeset identifier to another.
4*36ac495dSmrg#
5*36ac495dSmrg# Usage: gcc-svn-ids -f from_kind -t to_kind id
6*36ac495dSmrg#
7*36ac495dSmrg# Where from_kind is one of:
8*36ac495dSmrg#   index   index into the changeset list used by the reghunt tools
9*36ac495dSmrg#   rev     is the Subversion revision name
10*36ac495dSmrg# and to_kind is one of:
11*36ac495dSmrg#   index   index into the changeset list used by the reghunt tools
12*36ac495dSmrg#   rev     is the Subversion revision name
13*36ac495dSmrg#   date    expanded UTC date string
14*36ac495dSmrg#   branch  the branch, or "trunk" for mainline
15*36ac495dSmrg#   author  the person who checked in the patch
16*36ac495dSmrg
17*36ac495dSmrgerrmsg () {
18*36ac495dSmrg  echo $1 1>&2
19*36ac495dSmrg}
20*36ac495dSmrg
21*36ac495dSmrgusage () {
22*36ac495dSmrg  echo 'cvs_ids -f kind -t kind id' 1>&2
23*36ac495dSmrg  echo '   where from_kind is index or rev' 1>&2
24*36ac495dSmrg  echo '   and to_kind is index, rev, date, author, or branch' 1>&2
25*36ac495dSmrg  echo "error"
26*36ac495dSmrg  exit 1
27*36ac495dSmrg}
28*36ac495dSmrg
29*36ac495dSmrgif [ "x${REG_CHANGESET_LIST}" = "x" ]; then
30*36ac495dSmrg  errmsg "REG_CHANGESET_LIST is not defined"
31*36ac495dSmrg  echo "error"
32*36ac495dSmrg  exit 1
33*36ac495dSmrgfi
34*36ac495dSmrg
35*36ac495dSmrgif [ ! -f ${REG_CHANGESET_LIST} ]; then
36*36ac495dSmrg  errmsg "changeset list ${REG_CHANGESET_LIST} does not exist"
37*36ac495dSmrg  echo "error"
38*36ac495dSmrg  exit 1
39*36ac495dSmrgfi
40*36ac495dSmrg
41*36ac495dSmrg# Use a shorter name here.
42*36ac495dSmrgLIST=${REG_CHANGESET_LIST}
43*36ac495dSmrg
44*36ac495dSmrgwhile getopts "f:t:" ARG; do
45*36ac495dSmrg  case ${ARG} in
46*36ac495dSmrg  f) FROM_KIND="${OPTARG}";;
47*36ac495dSmrg  t) TO_KIND="${OPTARG}";;
48*36ac495dSmrg  h) usage;;
49*36ac495dSmrg  *) errmsg "unrecognized option: ${ARG}";
50*36ac495dSmrg     usage;;
51*36ac495dSmrg  esac
52*36ac495dSmrgdone
53*36ac495dSmrgshift `expr ${OPTIND} - 1`
54*36ac495dSmrg
55*36ac495dSmrgif [ $# -eq 0 ]; then
56*36ac495dSmrg  errmsg "too few arguments, ID is missing"
57*36ac495dSmrg  usage
58*36ac495dSmrgfi
59*36ac495dSmrgif [ $# -gt 1 ]; then
60*36ac495dSmrg  errmsg "unexpected arguments: $*"
61*36ac495dSmrg  usage
62*36ac495dSmrgfi
63*36ac495dSmrgID="$1"
64*36ac495dSmrg
65*36ac495dSmrgcase ${FROM_KIND} in
66*36ac495dSmrgindex)  LINE=`awk -F '|' -v id="${ID}" '{if ($1 == id) print }' < ${LIST}`;;
67*36ac495dSmrgrev)    LINE=`awk -F '|' -v id="${ID}" '{if ($2 == id) print }' < ${LIST}`;;
68*36ac495dSmrg*)      errmsg "unrecognized FROM kind: ${FROM_KIND}";
69*36ac495dSmrg        usage;;
70*36ac495dSmrgesac
71*36ac495dSmrg
72*36ac495dSmrgif [ "x${LINE}" = "x" ]; then
73*36ac495dSmrg  errmsg "no entry found for ${FROM_KIND} = ${ID}"
74*36ac495dSmrg  echo "error"
75*36ac495dSmrg  exit 1
76*36ac495dSmrgfi
77*36ac495dSmrg
78*36ac495dSmrgcase ${TO_KIND} in
79*36ac495dSmrgindex)  TO_ID="`echo ${LINE} | awk -F '|' '{ print $1 }'`";;
80*36ac495dSmrgrev)    TO_ID="`echo ${LINE} | awk -F '|' '{ print $2 }'`";;
81*36ac495dSmrgauthor) TO_ID="`echo ${LINE} | awk -F '|' '{ print $3 }'`";;
82*36ac495dSmrgdate)   TO_ID="`echo ${LINE} | awk -F '|' '{ print $4 }'`";;
83*36ac495dSmrgbranch) TO_ID="`echo ${LINE} | awk -F '|' '{ print $5 }'`";;
84*36ac495dSmrg*)      errmsg "unrecognized TO kind: ${TO_KIND}";
85*36ac495dSmrg        usage;;
86*36ac495dSmrgesac
87*36ac495dSmrg
88*36ac495dSmrgecho ${TO_ID}
89