Home | History | Annotate | Line # | Download | only in bin
      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.1.1.2  mrg index)  LINE=`awk -F '|' -v id="${ID}" '{if ($1 == id) print }' < ${LIST}`;;
     67  1.1.1.2  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