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