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 mrg index) LINE="`awk -F '|' -v id="${ID}" '{if ($1 == id) print }' < ${LIST}`";; 67 1.1 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