getpackagerevisionarch.sh 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  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. arm*)
  33. ARCH="arm"
  34. ARCH2="arm"
  35. ;;
  36. esac
  37. if [ -e /etc/debian_version ]; then
  38. if [ -e /etc/lsb-release ]; then
  39. . /etc/lsb-release
  40. if [ ${NOARCH} -eq 0 ]; then
  41. OUTPUT="${DISTRIB_CODENAME}_${ARCH2}"
  42. else
  43. OUTPUT="${DISTRIB_CODENAME}"
  44. fi
  45. else
  46. case `cat /etc/debian_version` in
  47. 5.*)
  48. if [ ${NOARCH} -eq 0 ]; then
  49. OUTPUT="lenny_${ARCH2}"
  50. else
  51. OUTPUT="lenny"
  52. fi
  53. ;;
  54. 6.*)
  55. if [ ${NOARCH} -eq 0 ]; then
  56. OUTPUT="squeeze_${ARCH2}"
  57. else
  58. OUTPUT="squeeze"
  59. fi
  60. ;;
  61. 8.*)
  62. if [ ${NOARCH} -eq 0 ]; then
  63. OUTPUT="jessie_${ARCH2}"
  64. else
  65. OUTPUT="jessie"
  66. fi
  67. ;;
  68. "sid")
  69. if [ ${NOARCH} -eq 0 ]; then
  70. OUTPUT="sid_${ARCH2}"
  71. else
  72. OUTPUT="sid"
  73. fi
  74. ;;
  75. esac
  76. fi
  77. elif [ -e /etc/redhat-release ]; then
  78. if [ -x /bin/rpm ]; then
  79. OUTPUT="${OUTPUT}\npackage=rpm"
  80. OS_GROUP=`/bin/rpm -q --qf "%{NAME}" --whatprovides /etc/redhat-release | sed 's/-release.*//' | tr '[A-Z]' '[a-z]'`
  81. REDHAT_VERSION=`/bin/rpm -q --qf "%{VERSION}" --whatprovides /etc/redhat-release`
  82. case "$OS_GROUP" in
  83. "centos" | "fedora")
  84. if [ ${NOARCH} -eq 0 ]; then
  85. OUTPUT="el${REDHAT_VERSION}.${ARCH}"
  86. else
  87. OUTPUT="el${REDHAT_VERSION}"
  88. fi
  89. ;;
  90. "redhat")
  91. REDHAT_RELEASE=`/bin/rpm -q --qf "%{RELEASE}" --whatprovides /etc/redhat-release| cut -d. -f1`
  92. if [ ${NOARCH} -eq 0 ]; then
  93. OUTPUT="el${REDHAT_VERSION}.${ARCH}"
  94. else
  95. OUTPUT="el${REDHAT_VERSION}"
  96. fi
  97. ;;
  98. esac
  99. fi
  100. elif [ -e /etc/SuSE-release ]; then
  101. if [ -x /bin/rpm ]; then
  102. OS_GROUP=`/bin/rpm -q --qf "%{NAME}" --whatprovides /etc/SuSE-release | sed 's/-release.*//' | tr '[A-Z]' '[a-z]'`
  103. REDHAT_VERSION=`/bin/rpm -q --qf "%{VERSION}" --whatprovides /etc/SuSE-release`
  104. case "$OS_GROUP" in
  105. "opensuse" )
  106. if [ ${NOARCH} -eq 0 ]; then
  107. OUTPUT="suse${REDHAT_VERSION}.${ARCH}"
  108. else
  109. OUTPUT="suse${REDHAT_VERSION}"
  110. fi
  111. ;;
  112. esac
  113. fi
  114. elif [ -e /etc/system-release ]; then
  115. if [ -x /bin/rpm ]; then
  116. OS_GROUP=$(grep -i "Linux" /etc/system-release | awk '{ print $1}')
  117. case "$OS_GROUP" in
  118. "Amazon" )
  119. if [ ${NOARCH} -eq 0 ]; then
  120. OUTPUT="amzn1.${ARCH}"
  121. else
  122. OUTPUT="amzn1"
  123. fi
  124. ;;
  125. esac
  126. fi
  127. elif [ -e /etc/gentoo-release ]; then
  128. OUTPUT="gentoo"
  129. else
  130. exit 0
  131. fi
  132. echo -n $OUTPUT