You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
2.3 KiB
83 lines
2.3 KiB
#!/bin/bash |
|
# dist.sh |
|
# Author: Tom "spot" Callaway <tcallawa@redhat.com> |
|
# License: GPL |
|
# This is a script to output the value for the %{dist} |
|
# tag. The dist tag takes the following format: .$type$num |
|
# Where $type is one of: el, fc, rh |
|
# (for RHEL, Fedora Core, and RHL, respectively) |
|
# And $num is the version number of the distribution. |
|
# NOTE: We can't detect Rawhide or Fedora Test builds properly. |
|
# If we successfully detect the version number, we output the |
|
# dist tag. Otherwise, we exit with no output. |
|
|
|
RELEASEFILE=/etc/redhat-release |
|
|
|
function check_num { |
|
MAINVER=`cut -d "(" -f 1 < $RELEASEFILE | \ |
|
sed -e "s/[^0-9.]//g" -e "s/$//g" | cut -d "." -f 1` |
|
|
|
echo $MAINVER | grep -q '[0-9]' && echo $MAINVER |
|
} |
|
|
|
function check_rhl { |
|
grep -q "Red Hat Linux" $RELEASEFILE && ! grep -q "Advanced" $RELEASEFILE && echo $DISTNUM |
|
} |
|
|
|
function check_rhel { |
|
egrep -q "(Enterprise|Advanced)" $RELEASEFILE && echo $DISTNUM |
|
} |
|
|
|
function check_fedora { |
|
grep -q Fedora $RELEASEFILE && echo $DISTNUM |
|
} |
|
|
|
PELRELFILE=/etc/powerel-release |
|
|
|
function check_ver { |
|
MAINVER=`cut -d "(" -f 1 < $PELRELFILE | \ |
|
sed -e "s/[^0-9.]//g" -e "s/$//g" | cut -d "." -f 1` |
|
echo $PELVER | grep -q '[0-9]' && echo $PELVER |
|
} |
|
|
|
function check_pel { |
|
grep -q "PowerEL" $PELRELFILE && echo $PELNUM |
|
} |
|
|
|
DISTNUM=`check_num` |
|
DISTFC=`check_fedora` |
|
DISTRHL=`check_rhl` |
|
DISTRHEL=`check_rhel` |
|
PELNUM=`check_ver` |
|
DISTPEL=`check_pel` |
|
if [ -n "$DISTNUM" ]; then |
|
if [ -n "$DISTFC" ]; then |
|
DISTTYPE=fc |
|
elif [ -n "$DISTRHEL" ]; then |
|
DISTTYPE=el |
|
elif [ -n "$DISTRHL" ]; then |
|
DISTTYPE=rhl |
|
elif [ -n "$DISTPEL" ]; then |
|
DISTTYPE=pel |
|
DISTNUM=$DISTPEL |
|
fi |
|
fi |
|
[ -n "$DISTTYPE" -a -n "$DISTNUM" ] && DISTTAG=".${DISTTYPE}${DISTNUM}" |
|
|
|
case "$1" in |
|
--el) echo -n "$DISTRHEL" ;; |
|
--fc) echo -n "$DISTFC" ;; |
|
--rhl) echo -n "$DISTRHL" ;; |
|
--distnum) echo -n "$DISTNUM" ;; |
|
--disttype) echo -n "$DISTTYPE" ;; |
|
--help) |
|
printf "Usage: $0 [OPTIONS]\n" |
|
printf " Default mode is --dist. Possible options:\n" |
|
printf " --el\t\tfor RHEL version (if RHEL)\n" |
|
printf " --fc\t\tfor Fedora version (if Fedora)\n" |
|
printf " --rhl\t\tfor RHL version (if RHL)\n" |
|
printf " --dist\t\tfor distribution tag\n" |
|
printf " --distnum\tfor distribution number (major)\n" |
|
printf " --disttype\tfor distribution type\n" ;; |
|
*) echo -n "$DISTTAG" ;; |
|
esac
|
|
|