rebuild-deb.sh 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #!/bin/bash
  2. set -e
  3. # 解压、修改、重新打包deb包
  4. function usage() {
  5. echo -e "USAGE:
  6. $(basename $0) --help # 使用帮助
  7. $(basename $0) -x file.deb # 解压
  8. $(basename $0) -b dir # 打包"
  9. exit 1
  10. }
  11. # 判断参数个数
  12. if [ $# -eq 0 ]; then
  13. usage
  14. exit 1
  15. fi
  16. ARGS=$(getopt -a -o h,x:,m:,b: -l help,extract:,modify:,build: -- "$@")
  17. eval set -- "${ARGS}"
  18. while true; do
  19. case "$1" in
  20. -h | --help)
  21. usage
  22. ;;
  23. -x)
  24. DEB_NAME=$2
  25. ## 解包
  26. dpkg-deb -X ${DEB_NAME} "${DEB_NAME%.*}_rebuild/"
  27. ## 解压控制信息
  28. dpkg-deb -e ${DEB_NAME} "${DEB_NAME%.*}_rebuild/DEBIAN/"
  29. shift
  30. ;;
  31. -m)
  32. ## 修改
  33. echo "--> do something"
  34. shift
  35. ;;
  36. -b)
  37. ## 重新打包
  38. # TARGET_NAME=${DEB_NAME%.*}_rebuild.${DEB_NAME##*.}
  39. # echo "$DEB_NAME -> $TARGET_NAME"
  40. dpkg-deb -b $2
  41. shift
  42. ;;
  43. --)
  44. shift
  45. break
  46. ;;
  47. esac
  48. shift
  49. done