getpackagerevisionarch.sh 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. #!/bin/bash
  2. print_usage(){
  3. echo "usage: getpackagerevisionarch.sh [-n|--noarch] "
  4. exit 1
  5. }
  6. NOARCH=0
  7. TEMP=`/usr/bin/getopt -o nh --long help,noarch -n 'getpackagerevisionarch.sh' -- "$@"`
  8. if [ $? != 0 ] ; then echo "Failure to parse commandline." >&2 ; exit 1 ; fi
  9. eval set -- "$TEMP"
  10. while true ; do
  11. case "$1" in
  12. -n|--noarch) NOARCH=1
  13. shift ;;
  14. -h|--help) print_usage
  15. shift ;;
  16. --) shift ; break ;;
  17. *) print_usage ;;
  18. esac
  19. done
  20. OUTPUT=""
  21. ARCH=`uname -m`
  22. ARCH2=${ARCH}
  23. case "$ARCH" in
  24. "x86_64")
  25. ARCH="x86_64"
  26. ARCH2="amd64"
  27. ;;
  28. "i386" | "i686")
  29. ARCH="i386"
  30. ARCH2="i386"
  31. ;;
  32. esac
  33. if [ -e /etc/debian_version ]; then
  34. if [ -e /etc/lsb-release ]; then
  35. . /etc/lsb-release
  36. if [ ${NOARCH} -eq 0 ]; then
  37. OUTPUT="${DISTRIB_CODENAME}_${ARCH2}"
  38. else
  39. OUTPUT="${DISTRIB_CODENAME}"
  40. fi
  41. else
  42. case `cat /etc/debian_version` in
  43. 5.*)
  44. if [ ${NOARCH} -eq 0 ]; then
  45. OUTPUT="lenny_${ARCH2}"
  46. else
  47. OUTPUT="lenny"
  48. fi
  49. ;;
  50. 6.*)
  51. if [ ${NOARCH} -eq 0 ]; then
  52. OUTPUT="squeeze_${ARCH2}"
  53. else
  54. OUTPUT="squeeze"
  55. fi
  56. ;;
  57. "sid")
  58. if [ ${NOARCH} -eq 0 ]; then
  59. OUTPUT="sid_${ARCH2}"
  60. else
  61. OUTPUT="sid"
  62. fi
  63. ;;
  64. esac
  65. fi
  66. elif [ -e /etc/redhat-release ]; then
  67. if [ -x /bin/rpm ]; then
  68. OUTPUT="${OUTPUT}\npackage=rpm"
  69. OS_GROUP=`/bin/rpm -q --qf "%{NAME}" --whatprovides /etc/redhat-release | sed 's/-release.*//' | tr '[A-Z]' '[a-z]'`
  70. REDHAT_VERSION=`/bin/rpm -q --qf "%{VERSION}" --whatprovides /etc/redhat-release`
  71. case "$OS_GROUP" in
  72. "centos" | "fedora")
  73. if [ ${NOARCH} -eq 0 ]; then
  74. OUTPUT="el${REDHAT_VERSION}.${ARCH}"
  75. else
  76. OUTPUT="el${REDHAT_VERSION}"
  77. fi
  78. ;;
  79. "redhat")
  80. REDHAT_RELEASE=`/bin/rpm -q --qf "%{RELEASE}" --whatprovides /etc/redhat-release| cut -d. -f1`
  81. if [ ${NOARCH} -eq 0 ]; then
  82. OUTPUT="el${REDHAT_VERSION}.${ARCH}"
  83. else
  84. OUTPUT="el${REDHAT_VERSION}"
  85. fi
  86. ;;
  87. esac
  88. fi
  89. elif [ -e /etc/SuSE-release ]; then
  90. if [ -x /bin/rpm ]; then
  91. OS_GROUP=`/bin/rpm -q --qf "%{NAME}" --whatprovides /etc/SuSE-release | sed 's/-release.*//' | tr '[A-Z]' '[a-z]'`
  92. REDHAT_VERSION=`/bin/rpm -q --qf "%{VERSION}" --whatprovides /etc/SuSE-release`
  93. case "$OS_GROUP" in
  94. "opensuse" )
  95. if [ ${NOARCH} -eq 0 ]; then
  96. OUTPUT="suse${REDHAT_VERSION}.${ARCH}"
  97. else
  98. OUTPUT="suse${REDHAT_VERSION}"
  99. fi
  100. ;;
  101. esac
  102. fi
  103. elif [ -e /etc/gentoo-release ]; then
  104. OUTPUT="gentoo"
  105. else
  106. exit 0
  107. fi
  108. echo -n $OUTPUT