96 lines
2.4 KiB
Bash
Executable File
96 lines
2.4 KiB
Bash
Executable File
#! /bin/bash
|
|
#
|
|
# $Source: /cvs/G/EPICS/App/scripts/showtags,v $
|
|
# $Revision: 1.15 $ $Date: 2015/02/04 16:49:28 $
|
|
#----------------------------------------------------
|
|
# Check the command line
|
|
#
|
|
opts=$(getopt -n showtags ahvs $*)
|
|
if [ $? != 0 ]; then echo Try: -h; exit; fi
|
|
#
|
|
# Command line is OK, so set the args and continue.
|
|
#
|
|
set -- $opts
|
|
|
|
asciiMonth=0
|
|
|
|
while [ $# != 0 ]; do
|
|
case "$1" in
|
|
-h | -\? | --help)
|
|
echo "usage: showtags [-a] [-s] [-h] [-v]"
|
|
echo " Find CVS tags in this directory and subdirectories."
|
|
echo " If there is a connection to psip0 (Oracle 9) you get date and time info too."
|
|
echo " Specify -a to get months displayed as abbreviated text string."
|
|
echo " Specify -s to get the tagged status of files in the directory."
|
|
exit 0
|
|
;;
|
|
-v | --version)
|
|
echo 'Original Author: Dirk Zimoch'
|
|
echo 'Last Change by $Author: zimoch $'
|
|
echo '$Revision: 1.15 $ $Date: 2015/02/04 16:49:28 $'
|
|
echo '$Source: /cvs/G/EPICS/App/scripts/showtags,v $'
|
|
exit 0
|
|
;;
|
|
-a)
|
|
# Display months as abbreviated month strings, not as numbers.
|
|
asciiMonth=1
|
|
;;
|
|
-s)
|
|
# Show the tagged status of the directory.
|
|
tagStatus
|
|
exit $?
|
|
;;
|
|
--)
|
|
;;
|
|
*)
|
|
echo "Invalid argument $1. Try: -h"
|
|
exit 1
|
|
;;
|
|
esac
|
|
shift
|
|
done
|
|
trap "stty echo" EXIT SIGTERM SIGKILL
|
|
|
|
TAGS=$(cvs status -v 2>/dev/null | awk '
|
|
/\(revision:/ {tag[$1]=1}
|
|
END {for (i in tag) { print i}}
|
|
')
|
|
|
|
function jointags()
|
|
{
|
|
echo -n \'$1\'
|
|
shift
|
|
while [ $# != 0 ]
|
|
do
|
|
echo -ne ",\n'$1'"
|
|
shift
|
|
done
|
|
echo
|
|
}
|
|
|
|
TAGLIST=$(jointags $TAGS)
|
|
|
|
function selectNumericMonth () {
|
|
ivsql --separator " " "SELECT DISTINCT TagName AS 'Tag', TagDate AS 'Date' FROM CvsTags WHERE TagName IN ($TAGLIST) ORDER BY Date" \
|
|
| awk '{printf "%-40s %s %s\n", $1, $2, $3}'
|
|
}
|
|
|
|
function selectAsciiMonth () {
|
|
ivsql --separator " " "SELECT DISTINCT FORMAT(TagDate, 'dd-MMM-yyyy HH:MM ') AS 'Date' , TagName AS 'Tag' FROM CvsTags WHERE TagName IN ($TAGLIST) ORDER BY Date" \
|
|
|
|
}
|
|
|
|
if [ $asciiMonth = 0 ]; then
|
|
DATABASEINFO=$(selectNumericMonth)
|
|
else
|
|
DATABASEINFO=$(selectAsciiMonth)
|
|
fi
|
|
|
|
echo "$DATABASEINFO"
|
|
for TAG in $TAGS
|
|
do
|
|
echo "$DATABASEINFO" | grep -q $TAG || echo $TAG
|
|
done
|
|
|
|
|